Docs on the CompositeField class.
Moved quote/unquote from contrib.admin.utils to utils.encoding.

These functions have also been generalized somewhat for use by composite
values.
Initial implementation of CompositeField.
Reimplemented composite IN lookups.

Introduces InConstraint, a new DB backend operation for more efficient
multi-column IN lookups. Now, instead of creating a huge DNF expression,
an IN expression is created on backends with support for tuple literals
and an EXISTS subquery is used otherwise.
Implemented lookups on CompositeField.
Implemented proper support for composite PK in admin.

This basically consisted of adding an explicit force_text everywhere the
value of the primary key is quoted to make sure it really is quoted
properly.
Allow field names as arguments to CompositeField

It is now possible to use field names as well as field instances. This is
required in order to support deconstruct properly and also makes it easier
to implement clone_for_foreignkey.
Support for composite ForeignKeys
Fixed a composite_fields test that started failing recently.