Add framework and one resource export (pingone_agreement) to pingctl.
Further work will follow this adding remaining resources to export
subcommand.
Update test functions to use NewRootCommand() to gain viper
functionality in test cases.
Update most output messages to use Error instead of Fatal to
propagate error messages back through the call stack. This is useful
for chaining error messages to trace what pingctl was trying to do,
as well as make test cases receive stdout for error messaging.
Update Cobra Run functions to use RunE to allow error propagation
as well.
Update export.go to use PingOne SDK and loop through user-specified
services exports. Use user-defined export format and override variables
to do so. Default export output directory to pwd. Fail to export if
previous export files are present.
Update ExportableResource to define an ImportBlock struct to
house API data and use in text template output to file. Add utility
ResourceType function to interface as well.
Create pingone_platform_connector.go to define a connector for
the pingone platform service. Pingone SSO service is to be added in
further work.
Create resources subfolder structure for connectors to define
each resource, as well as their sdk-specific logic
or exporting data.