Fixes #7408 - added lazy loading of credentials

- credentials container with prompt ability
- support API documentation (JSON) accessible without authentication
- RestClient connection initialized only when needed
- option to to use unauthenticated connection for method calls
I'm not sure about adding `highline` as a dependency.
I think leaving that on users would be cleaner. `BasicCredentials` could then be simplified to an object holding just the name and the password.