Issue #30 - when no tenant ID or name is passed, it now returns the first tenant found. Algorithm needs to be made a bit smarter than this and fetch a tenant if there is one (and only one) enabled tenant. In all other cases, it must throw an exception.
Issue #30 - only when exactly one enabled tenant is available, will one be chosen. Otherwise, an exception is thrown
Issue #30 - refactored ClientMock and ClientImpl, collapsing shared logic in AbstractClient, paving the way for tenant discovery in mock mode
Issue #30 - more refactoring, this time the authenticate method. It now fully depends on its configuration (ie, AccountConfig) in order to combine paths
Issue #31 - moved preferredRegion to AccountConfig
Issue #30 - mock facilities for tenant discovery in place as well. It would be nice to have multi-tenant accounts in mock mode, which act as such as well. Perhaps in the future
Issue #30 - fixed bug in AbstractClient, which only set tenantId twice, second time overwriting the first value and leaving tenantName empty.