pluggable token auth driver

implements a means to plug-in authentication token drivers by means of
providing a token driver interface with a default (base) implementation
for SLAPI. this change remains backwards compatible, but also permits an
easy way to plug-in a different driver. token auth drivers are
responsible for authenticating with an identity provider and
building/returning a well formed jumpgate auth token. this is part of
the keystone identity/auth workflow.

implements: https://github.com/softlayer/jumpgate/issues/47
fix pep8 errors
pluggable authentication support

implements pluggable authentication by means of introducing "middleware"
hooks which can be added to the request/response pipeline. various
portions of the existing pipeline are refactored into their own hooks
including; validation of auth token (X-AUTH-TOKEN header), SL client
binding and logging. additional refactoring is also done to make the
identity token driver more extensible specifically allowing consumers to
extend the token driver and plug in their own authentication and
jumpgate token creation methods. finally the existing jumpgate auth
token has been unified as a single json/dict.

implements https://github.com/softlayer/jumpgate/issues/47
pluggable api hooks, tokens & auth

this change implements the notion of pluggable API hooks whereupon
providers and latch-in before/after hooks for the request/response flow.
it also refactors the existing per request authN, logging, etc. into
hooks. also included in this PR is the notion of pluggable identity
token, token-id and authentication drivers which permits consumers to
easily plug into the existing identity workflow without changing base
jumpgate code.

implements: https://github.com/softlayer/jumpgate/issues/47
updates to pluggable auth token impl

updates to the pluggable token, auth, hooks implementation including:
pydoc for the extendible driver interfaces, unit tests, minor bug fixes,
replace of global var usage in hooks with singleton pattern.

implements https://github.com/softlayer/jumpgate/issues/47
fix pylint related errors
Merge pull request #48 from bodenr/bodenr/pluggable-authtoken

pluggable token auth driver
Fixes name filtering for nova list with --name and --instance-name
Merge pull request #54 from sudorandom/server-filter

Fixes name filtering to work with nova list using --name and --instance-name
identity bug fixes for non-url friendly tokens + get /tokens/{id} authn

implements fixes for the following:
- Tokens can be generated which are non-url friendly. This impacts the
consumers ability to use the token on a GET /tokens/{token_id} call.
- The API pipeline should allow unauthenticated calls to GET
/tokens/{token_id} to validate an existing token

fixes https://github.com/softlayer/jumpgate/issues/55
Merge pull request #56 from bodenr/bugs/get-token-issues

identity bug fixes for non-url friendly tokens + get /tokens/{id} authn
Merge branch 'master' into ip.type