add instance method app.authenticate as wrapper for api_auth.authenticate
fix bug in api auth

Prevent the skd from blowing up if a bearer token with and invalid
format is supplied. Also, make sure to always go through the entire
oauth flow to prevent time based attacks.
add test deps to tox.ini
add test deps to setup.py
add tests for api auth
add apiKeys to cache regions
fix api keys creation