Add a draft for indexes.

Some draft API specifications for custom indexes. Key points:

- Introduction of `django.db.models.indexes`
- Support for custom classes to `db_index`
- Introduction of `Meta.indexes`
- `spatial_index` would be deprecated and a corresponding chunk of code removed from gis, allowing fields to specify their own index type, via `Field.get_default_index`
I expect FuntionalIndex to be somewhat complex to set up properly. You will need to have an query so that F() objects can be resolved. Then you need to extract the actual SQL of the expression somehow.