Add authentication with django-allauth

This is set up for login with Google, Twitter, Facebook or creating an
account manually.
Only allow editing if the user is logged in
Also record a timestamp with each version
List versions on the person edit page, and allow you to revert to one
Fix new party creation

Unless you take the result of POSTing the new party the ID won't be
found in the subsequent code.
Add coverage.py to the requirements
Remove unused method: get_candidate_list_memberships
Remove unused method: set_party_membership
Remove unused method: get_party_memberships
Remove unused method: membership_exists
Remove unused method: delete_membership
Remove unused method: create_membership_if_not_exists
Remove unused method: get_value_from_person_data
Remove unused variables and imports
Update the README with progress
Add a .travis.yml file for continuous integration with Travis
Don't require collectstatic in order to run tests

This is based on Matthew Somerville's patch to SayIt to make it
unnecessary to run collectstatic for the testing.
Mock out the PopIt API object for the constituency smoke test
Remove some debugging output
Function parameters should be lowercase