Various fixes for multitenancy, including:

* Fixes to the caching
implementation in Model so that it includes the current tenant
collection in the cache key

* Renamed MultitenantDatastore to TenantDatastore

* Hook up EntityInterceptor when a new TenantDatastore is created so
that events work correctly

* Make Datastore's thread local and initialize current tenant's
datastore whenever a new Request comes in.

* Change implementation of MorphiaPlugin.ds() to always return current
TenantDatastore.

* Added MultitenantHelpers which includes TenantScope helper for running
a code block against a specific tenant ID.

* Rewrote MultitenantTest tests to use TenantScope.