Authentication Refactor

- Created an abstract class that defines the Authentication interface based on the old authentication class we will need so we can always get a valid token
- Created a new module for authenticating with Keystone Client, no authentication URL is defined
- Created a new module for authenticating with Keystone Client against Rackspace Identity, simply provides the DC aware Identity authentication URLs
- Removed the old authentication class

Note: not yet tested
Module Resolution

- Apparently it doesn't like importing the openstack and rackspace authentication modules into the __init__; this fixes it all
Testing & Bug Fixes

- Adds initial round of tests (44% coverage)
- Fixed shell entry so that we can specify an authentication module via command-line
- Enhanced the incoming user configuration json data to be able to auto-detect what parts are provided
Documentation Improvement

- added a little more documation to clarify a parameter
More Testing

- More testing 49% coverage
More Testing

- Add tests for AuthExpirationTime
More Testing

- Completed testing of the Auth module
Clean up

- Cleaned up the tests by consolidating some duplicated code (namely the keystone version data) and removing some code commented out
Merge branch 'master' into refactor_auth
Merge branch 'master' into refactor_auth

Conflicts:
	setup.cfg
Bug Fixes

- keystoneclient.client.Client() does not work properly at least with Rackspace Identity; it also appears keystoneclient itself doesn't use it for keystoneclient.shell. Rather everything seems to hardcode a Keystone version, in this case keystoneclient.v2_0.client.Client. So we'll do likewise for now until the discovery stuff is fixed.
--- Updated usage of keystoneclient.client to keystoneclient.v2_0.client
--- Updated mocks to mock out the keystoneclient.v2_0.client
--- left existing mocks in place so it is easy to revert, and documented the changes and why
--- keystoneclient.v2_0.client.Client can throw an exception on creation; as a result get_client needed to be try/excepted and a new test added
- bugfix: discovered a bug in the deuceclient.shell that failed to capture the correct username
- bugfix: apikey is not supported via keystoneclient at this time; though we could probably monkey patch it to do so
- bugfix: some parameters were in the incorrect order
--- updated to be in a uniform order
- bugfix: AuthToken is no longer a property b/c properties don't work well with abstract base classes
Converted AuthToken() back to property AuthToken

- Properties do not play well with Abstract Base Classes so AuthToken as a property cannot be derived
--- Changed the abstractmethod from AuthToken to _AuthToken
--- Updated base class's AuthToken to call _AuthToken which by default is not implemented
--- Converted AuthToken back to property and updated all references accordingly
Merge pull request #3 from BenjamenMeyer/refactor_auth

Refactor auth - since we have the NoAuth Auth Module this should not hold us up; bugfixes can be a new PR.

We need to move forward.