Keystone Caching Layer for Manager Calls

Implements core elements of Keystone Caching layer. dogpile.cache
is used as the caching library to provide flexibility to the cache
backend (out of the box, Redis, Memcached, File, and in-Memory).

The keystone.common.cache.on_arguments decorator is used cache the
return value of method and functions that are meant to be cached.

The default behavior is to not cache anything (using a no-op cacher).

developing.rst has been updated to give an outline on how to approach
adding the caching layer onto a manager object.

Subsequent patches will build upon this code to enable caching across
the various keystone subsystems.

DocImpact

partial-blueprint: caching-layer-for-driver-calls
Change-Id: I664ddccd8d1d393cf50d24054f946512093fb790