Remove OpenStack-specific code from Core

This removes the remaining provider-specific code from core so that we
can potentially use it for other cloud providers. Phase 2 of this change
will involve moving Openstack-specific code to its own project.

Change-Id: I8a74adf009bc678e2aaecf3b91010e2dfe492418
Multiple changes to Travis CI config file

* Build all branches

* Include Ruby 2.1.0 testing

Change-Id: Ib291fe17ace9ccb46f97c462a4c5add6075c877d
Improve notes in sample environment.yml

Change-Id: Icab48801c839a50a79cbf4df5fffdc3712b9e769
Move utility classes to aviator/core/utils

Change-Id: I69b36c435fe6db0b0b9352ee6ccdb0c2afd610d1
Load OpenStack in aviator.rb not in aviator/core.rb

Change-Id: I51eff37fd8f6d226dec114e929014a8e8f43df85
Move OpenStack-specific test to its own file

The tests for service included OpenStack-aware logic. This moves
that out of the class and into its own test.

Change-Id: Ie130811fa3785a782f51b0300c7a24387441dd5a
Allow request api_version override

This is an experimental patch that provides a caller two ways to override
a request's api_version.

First method: In the call to a request.

   compute_service.request :create_server, :api_version => v1 { ... }

Second method: In the configuration file.

   production:
     provider: openstack
     auth_service:
       # declare auth service here
     compute_service:
       api_version: v2

Change-Id: Ic951a3a222eecc250219cb7ec891f038f7e167ea
Move provider class

Change-Id: Idffed7a60e6dc5f72416500ac459c5da3ae2cf95
Move requests files to requests subdirs

Change-Id: Ie9eaf4b03a50ffc25ac79b1f2e7be13f390de099
Move request tests and cassettes to requests subdirs

Change-Id: I4c5c397ca6e40342aa663d550e33fff17d48955a
Implement Hashish#dup

Without this method, only the Hashish instance is duplicated
while the original underlying hash is still referenced.

Change-Id: I07246e9c6690395da919e5db10a94cbb400d7d62
Add test for list_tenants (endpoint_type: admin)

Change-Id: I158bfd5df7c5cc1087c00eebcc1ac582b389b44c
Implement Keystone V3 create_token request

Change-Id: Iba75203595f28939d2566586ff4a13c00ae827ef
Create base request test

Change-Id: If9330b3ebd89bf7dd98138db85beccbc91437c2c
Store auth response body and headers

Keystone V3 provides the token in the response headers which
was previously discarded by Session after authentication. This
modifies that behavior so that the headers are also preserved.

Change-Id: Iedae5ccf06253b5b6fa95dda5861ec3f04b081ef
Modify files to use new session data format

Change-Id: If0743afb245a4255062258bbcea297ef276b0fa7
Differentiate between Keystone V2 and V3 session data

This allows openstack request classes to know the difference between
Keystone v2 and v3 auth information (aka session data). This logic is
kept within a base request class that all other OpenStack request
classes inherit from. No further changes are required from inheriting
request classes.

Change-Id: I881cb45516814928249825c4dbee77bc5a5840f7
Extract base_url from V3 style session data

Change-Id: Ia75ba81ec3eff4472fa907b55a7681ff19d4a31e
Improve Openstack::Provider's infer_version method

* If there are multiple API entries for a given service, Provider will
throw an error and ask the user to be more explicit.

* It now handles Keystone V2 and V3 style session data

Change-Id: If0d46a22c6ca55413002445b0c4bf97234098f66
Use auth_service's api_version

Previosly, the assumption was that it will always use KS v2.0
api. This change actually uses the value put in there.

Change-Id: Id251ed469ae9831a0de9d6e080b6a29b1dad219b