Improve CSRFModelForm inheritance scheme

The old way was explicitly calling the CSRFForm.__init__ function and removing
the argument from the call. However, Python's MRO is actually awesome enough
that we don't need it. As long as the whole chain uses super(), we are save and
don't need any action. A comment in the code now explains this as a future
warning should things break.
Add more tests and fix some issues found by them