Update user object before save

Allow a subclass to update the user model before it's saved and avoid
multiple database hits with the the signal method.
Authenticate a new user

Let a subclass choose how or even to not authenticate a new user.
Return user objects from methods
Move username and password into methods
Use password and username set on self

This allows setting password to be done in the update_user_object
method.
Add a signal sending method
Return user from authenticate_new_user regardless
Merge pull request #19 from incuna/add-cbv-entry-points

Add entry points to the registration view