Shared models feature

Here it is for review. If you don't like something, I can work on it now and send another version, as there are multiple ways to approach this problem. I like this the most.

Basically it collects all the apps from SHARED_APPS which are not in TENANT_APPS and force any reference to them into the public schema, modifying the query as [discussed in #43](https://github.com/bcarneiro/django-tenant-schemas/issues/43#issuecomment-24637378).

There is also a SHARED_MODELS setting which can contain any model, and references to those will be forced into public schema regardless. This way it is possible to put only part of apps into public schema. For example put auth in TENANT_APPS, but put `auth.User` in SHARED_MODELS and every tenant will have it's own groups, permissions and everything, but the usernames will be central from public schema. This way, no modification needed on any models and a fine-grained control it is still possible.