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, TENANT_APPS, and modify 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 `django.contrib.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.

The branch is merged with my previous `refactorings` and `master`.