Decouple (not very thoroughly) Django default user model

Whilst adding Wagtail to an existing project that's in an early stage, I noticed it's tightly coupled with the Django user model, which was a problem for me as I'm using a custom model. I made these very non-exhaustive changes to allow me to continue my project. There's still the assumption of a field (or property) 'username', and fields for 'first_name' and 'last_name'.