Implement SHARED_MODELS feature

Make use of SHARED_MODELS list in settings.py. Shared models will forced
into the public schema, by manipulating the CREATE query.

Syncdb Code copied from Django 1.6.x branch, but it should work on django 1.5.x
too, because there are no substantial differences, just a pre_sync_model signal.
Implemented SHARED_MODELS feature Fixes #43

* Added shared_models list to connection
* Switched DatabaseCreation to the new schema-aware implementation
* Removed example.com creation signal from tenant creation
DatabaseCreation already has the connection attribute
Update documentation for SHARED_MODELS setting.
Not force the reference to public for apps which are in TENANT_APPS too.
Fix a previous mistake in shared_models property

The previous commit compared unconverted model strings to models…
Change references in ALTER TABLE queries too.

Django for some reason make references to tables two different ways.
One is in CREATE TABLE statements, other is in "ALTER TABLE" statements.
Both are covered now.
Modified sync_schemas command for SHARED_MODELS feature.

Added tenant_models and shared_models properties to connection.
FOREIGN KEY creation to public tables doesn't work yet!
FOREIGN KEY creation to public tables is also working now.
Working with South enabled!

South changes INSTALLED_APPS setting on the fly, so we need to first look up
which shared_apps and tenant_apps we need right now and only handle those
during the sync.
If the tenant model uses migrations, querying all the tenants will fail on
`sync_schemas` command because the tables for that model is not created yet.
(It is only created after south's `migrate` command.) I handle this now by
checking for ProgrammingError exception (because that's what Django throws if
you want to query a non-existing table) and warn the user to apply the migrations.
Logically reorganized code, fixed some logic mistakes.

Tried to put codes to the logically most fitting place;
shared_app models, tenant_apps models, and shared_models are now three different properties.
Select models to sync in sync_schemas.
If no SHARED_APPS, INSTALLED_APPS will be used.
If no TENANT_APPS, INSTALLED_APPS will be used.
If no SHARED_MODELS, connection.shared_models will be empty.
If a model is in SHARED_MODELS and it's app in TENANT_APPS,
the model's table will not be created on the tenant's schema,
but the foreign key will be forced to the public schema.
Improved documentation with completion for the new SHARED_MODELS feature.

Also fixed small mistakes. Removed "not possible centralized" text.
Added SHARED_MODELS to example. I hope it works :)

It shows an example of centralize user database, but everything else like
Groups, Permissions (even relations) are synced into tenant schemas.
Tables which need reference to public schema, will be created automatically!
Implements fully centralized apps.

Implements fully centralized apps, by taking over the table creation.
It basically inserts the schema_name in front of the desired table references at:
* index creation
* table creation
* foreign key creation

Disables the table introspection when syncing tenant models, because otherwise
every model's table would appear as already created if they are already synced
into the public schema, because public schema is always in the search_path now.

Also eliminated "include_public_schema" as it is not needed anymore.
postgresql_backend.creation module takes care of every case.