Create Indexable in core

* create Indexable in the core
* redoes the Django Indexable to only have the bits Django needs
* renames DjangoMappingType to MappingType
* adds a bunch of documentation
* adds new tests