Notification preferences; fixes #248

This fixes #248 by adding a UserProfile model, created when using the .get_profile method

    user = User.objects.create_user('example', 'example@example.com', 'password')
    
    # raises DoesNotExist
    user.userprofile
    # creates it
    profile = user.get_profile()
    # no longer raises error
    user.userprofile == profile # (True)

At the moment UserProfile just has three fields, for the three sorts of notification emails currently being generated. This pull request adds a form in wagtail admin to select which notifications (of those your privilege of user is eligible to receive) you want to receive, and provides a link to that preferences form at the bottom of the notification emails.
.exists() is slightly faster