Support for custom User model via AUTH_USER_MODEL setting

Note that this doesn't include any migrations you will need to do if you change your user model