Profiles: fixed URLs
Django 1.6: don't use `print` in management commands

The statements have been replaced by `self.stdout.write()` calls.

Fixes #175.
Django 1.5: killed djblets

This old bundled dependency contained code incompatible with Django 1.5,
but apart from that the feature the code was depending on (keeping track
of site's title and build versions) is of no use for us anymore.

The commit moves the site's title straight away into the settings, so it
should be configured right there.

On the other hand the upgrade machinery has been taken out, as it's of no
pratical use for us. Our releases just depend on DB schema and data
migrations.

Fixes #177.
Settings: Specify ATOMIC_REQUESTS for DATABASES

Django 1.6 replaces TransactionMiddleware by ATOMIC_REQUESTS == True.
This allows more control over the transactions, however it also means
database backends that don't behave properly without autocommit will
break in 1.6 (such as sqlite).
Django 1.6: switch to atomic transactions

`transaction.atomic()` is the replacement for the legacy `autocommit()`,
`commit_on_success()` and `commit_manually()`.

Also dropped the `TransactionMiddleware`, which is replaced by the
`ATOMIC_REQUESTS` setting.

Fixes #180.
Django 1.6: be explicit about the fields included in ModelForms

Fixes #182.
Django 1.6: removed the depth attribute from `select_related()`

This is only to ensure compatibility with newer Django versions, and the
change mimics the behavior of the old `RelatedManager` most of the time.
In order to ensure the best performance, every manager should need to be
reviewed in a case-by-case basis.

Fixes #178.
models: Drop natural key handling everywhere.

This is a partial revert of the very old commit fc0b5f8e, which was done
to improve dumpdata and loaddata commands at a time when they were still
useful.
This is no longer the case since those commands shouldn't be used,
especially not to convert between databases.

Also update notes on database migration

Conflicts:
	docs/releases/2.5.2-rc1.rst
	pootle/apps/pootle_app/models/permissions.py
	pootle/apps/pootle_language/models.py
	pootle/apps/pootle_profile/models.py
	pootle/apps/pootle_project/models.py
	pootle/apps/pootle_store/models.py
	pootle/apps/pootle_translationproject/models.py
Django 1.5: fixed `UnitStateField` behavior

The interpretation of values changed in the templates and the field now is
getting values other than strings as well (`True`, `False` and `None`).
Django 1.6: removed `UnitStateField` field's validation step

It has been removed because in Django 1.6 now that's part of the
`BooleanField` field's `validate()` method, which is called in the field's
`clean()`.
User: replaced auth.User model references

This sets `settings.AUTH_USER_MODEL` to `auth.User` and `get_user_model()`
is used at run-time in place of directly importing
`django.contrib.auth.models.User`.

Fixes #194.
Cleanup: removed django-voting

Apart from being of no use for us, neither the required version (0.1) or
the latest version (0.2) are compatible with custom user models.
profile: Remove ui_lang from the profile
Auth: use Django's own `AuthenticationForm`

`lang_auth_form_factory()` already passed away and this is a natural
replacement.
User: introduced custom user model

This shares most of the fields of the `auth.User` model except:
- `full_name` is used instead of `first_name` and `last_name`
- `is_staff` has been removed; it had the same meaning as `is_superuser`

Note that his only introduces the initial DB schema and doesn't switch any
of the existing behavior.

Fixes #195.
User: switched to the custom user model

Swaps `auth.User` with `pootle.User` and provides the data migration.
Some user model-specific bits have been adjusted as well, but
`PootleProfile` still needs to be merged into the User model.

Fixes #196.
User: added profile fields and methods

This solely adds the fields, the data migration and other adjustments will
come in further commits.

Fixes #197.
User: migrated profile data

Note that old `PootleProfile` models should now be nuked and the
`profiles` app be retired accordingly.

Fixes #198.
i18n: Get rid of get_lang_from_prefs

The function uses profile.ui_lang which we are not using anymore.
i18n: adjusted docstring