return user_id in server details

obtains and returns the cci creator user id in a servers response.
however a cci creator user id is only accessible if the API callers
credentials permit it. in cases where not accessible a JSON value of
null is sent over the wire for the server.user_id
Merge pull request #42 from bodenr/bodenr/issue39

return user_id in server details
validate tenant id against account id during authN

this change validates that a native openstack authN request which
contains a tenantId is validated against the users SL account id. if the
two don't match the authN request is invalid and rejected.

implements: https://github.com/softlayer/jumpgate/issues/43
Merge pull request #44 from bodenr/bodenr/authn-tenant

validate tenant id against account id during authN
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