Create the basic data set using posts instead of candidate lists
Don't add an area to every membership as well as every post

When searching for data, people are most likely to do that by searching
for the area in posts, and it's redundant to add it to every membership
of that post too.
Convert IDs to slugs and use YNMP IDs for people

Pair-programmed with Mark Longair (@mhl)
Script for emptying the popit collections

Pair-programmed with Mark Longair (@mhl)
Add 2015 election date
__eq__ and __hash__ on PopItPerson should be based on ID

Pair-programmed with Mark Longair (@mhl)
class method for creating from a dict

Pair-programmed with Mark Longair (@mhl)
Typo
Switch ConstituencyDetailView to use posts

Pair-programmed with Sym Roe (@symroe)
Move membership_covers_date and complete_partial_date into models.py

We now need to use this from other modules, so move it into models.py,
which avoids circular import problems.

Pair-programmed with Sym Roe (@symroe)
Add a TODO
Fix an exception's message

Pair-programmed with Sym Roe (@symroe)
Only remove the 2015 party membership if it exists

Pair-programmed with Sym Roe (@symroe)
Add a new 'parties' property to PopItPerson

This returns a dictionary showing the candidate's party memberships in
both 2010 and 2015, to replace the old 'party' property (which
essentially picked one randomly if they were different). This also
doesn't rely on the _update_organizations, which we want to remove.

Also remove the now unused get_year_party_map

Pair-programmed with Sym Roe (@symroe)
Remove the sleep hack now that the PopIt bug is fixed

Pair-programmed with Sym Roe (@symroe)
Add a delete_memberships method to PopItPerson

This is more clear than using the party_and_candidate_lists_iter
iterator. (However, we should change delete_memberships to only delete
party memberships and 'Candidate' memberships of posts.)

Pair-programmed with Sym Roe (@symroe)
Remove some old debugging output

Pair-programmed with Sym Roe (@symroe)
Make sure organizations are fetched when creating a PopItPerson

Pair-programmed with Sym Roe (@symroe)
Move generation of the 'standing_in' data to a PopItPerson method

Pair-programmed with Sym Roe (@symroe)
The _update_organizations method is no longer needed

Pair-programmed with Sym Roe (@symroe)