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