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.
Avoid leaking active translation from ForeignObject tests.
Implemented proper creation of composite FOREIGN KEY constraints.

This appears to greatly confuse SQLite's introspection code which now
reports incorrect relationships. Other backends are not affected.
Fixed column naming for auto-created auxiliary composite fields.
Fixed gis compiler.get_default_columns()
Fixed some issues in composite fields

 - Made RelatedField VirtualField subclass
 - Allowed update() of composite fields and ForeignKeys, this was
   done by adding resolve_concrete_values() method to Field.
 - By the above, fixed delete SET=None issue
 - Some minor code cleanup (mainly cleaning what VirtualField does,
   and removal of duplicate methods from RelatedField
 - SQLite3 foreign key introspection fix
 - Made subqueries multicolumn friendly by using Query.add_filter()
   instead of manually building the filter conditions
Fixed m2m add, remove, set and clear operations
Added tests for update(combofk=val)
More m2m composite support
Composite M2M value stays selected in forms
Replaced resolve_basic_fields() with concrete_fields cached_property
Removed get_enclosed_field()