First cut at a true polymorphic serializer.

Lots of nasty techniques here, most of which are, alas, unavoidable.
Plenty of apologies to match them.

The tests included are fairly basic; there are various cases not
considered yet, e.g. playing well with mixins. But it is enough to
realise what a monstrosity such an approach as this is is! There are
probably not enough assertions littered about the place, which can lead
to really gnarly errors popping up in the wrong places if you do
something just *slightly* wrong.

Doubtless in a month's time I will fully repent of this code.
Document things.
Split cqrs.mongo into appropriate modules.

These are:

- cqrs.models
- cqrs.settings
- cqrs.serializers
- cqrs.mongo (the Mongo-specific parts stay there)
Add model path to polymorphic serializer output.

At present this is the Python module path. Using that will make it
genuinely easy to implement from_native when we need to. We could switch
it to using names of another form without significant difficulty—it'd
just be introducing a lookup of some form.
Fix mongoID field's max length.
Implement partially broken deserialization.

This may or may not work with the `CQRSSerializer(data=…)` technique; I
haven't tried it at all.

Unfortunately it appears that somewhere, deep in the bowels of Django
REST framework, probably, the `mongoID` field is lost in
deserialization. Hence the test_c_deserialize and test_d_deserialize
tests fail. To me this is inexplicable; I've tried somewhat to
understand it or to work around it, but in vain.
Refactor registration stuff out of serializers.

This is so it can be conveniently used for document subcollections in
Mongo, which I'm just about to do.
Remove unnecesary print statement.