[Brightbox] Refactors credential code in Compute
OpenStack floating_ip (aka address) test fixes

Updates to the OpenStack address tests so that:

 * The tests cleanup after themselves when executed in Real mode.
   Previously running these tests in Real mode would leak servers
   and floating IPs.

 * DRY things up a bit.

 * Make use of the floating IP we create in subsequent tests. Previously
   the last floating IP in the full list was used. This could be
   problematic in some cases.

--

Also adds a missing Mock class for the release_address request so
that FOG_MOCK tests continue to pass.
fixes issue#1313 ~ Creating user via `Aws.iam.users` ignores `:path`
[Brightbox] Extracts authentication connection

Moving the URL for the authentication endpoint up to the instance level
rather than hiding the logic in the method. Eliminate the need for
options on a private method.

Also cleaned up references to credentials in same method.
[Brightbox] Refactors how tokens are requested

Extracting existing strategies out of Compute
[Brightbox] Moves tokens to CredentialSet
[Brightbox] Extracts parts of request out of compute

* Adds simple helper to get token for service
* Low level request #request_access_token is provided to request
  access tokens
[Brightbox] Adds support for refresh tokens

Passing in a refresh token to `Compute#new` will allow the token to be
used to request new access tokens as the original authenticated user so
the username and password do not have to be stored locally.
[Brightbox] Adds option to disable token management

Original request method handles missing tokens and the first
Unauthorized response by requesting a new access token.

This magic can be disruptive for clients so can be disabled by passing
in `:brightbox_token_management => false` to the Compute service.
[Brightbox] Adds means to update scoped account

A Compute instance encapsulates a connection for a client to the
Brightbox API. Users can have multiple accounts but there was no easy
way to switch between them when account had to be passed in via the
initializer.

Now the scoped account can be set on an existing instance which overrides
any configured setting but it can be reset if needed.

The #request method still can accept `account_id` as an option which
again overrides the previous settings.

Finally the parameter is now correctly sent as a query string parameter
not part of the API request JSON.
[Brightbox] Moves more of public API into Shared

Moved a lot of helper methods to Shared so that the Mock version of the service
is not erroring with missing methods even if requests are not implemented.
[Brightbox] Guards unimplemented mock tests

This guards the newer tests just added that rely on unimplemented mocks
Merge pull request #1320 from brightbox/refresh_tokens

[Brightbox] Refresh tokens
revised create logic to default path to '/'
added test for create logic to default path to '/'
Merge pull request #1315 from dprince/openstack_address_test_fixes

OpenStack floating_ip (aka address) test fixes
OpenStack: Remove volumes from limits tests.

OpenStack Grizzly no longer supports volumes. This removes
the volume settings from the OpenStack limits tests and Mock
.

This change has will has no effect on users of previous of
Fog for previous releases (Folsom, etc) but should allow
us to easily support the latest upstream codebase and run
Fog *real* tests.
added support for mock
revised test order
Merge pull request #1316 from virtualstaticvoid/iam_create_user_fix

Creating user via `Aws.iam.users` ignores `:path`