Limit (slow) calls to PartySet.party_choices when creating forms
Limit (slow) calls to PartySet.party_choices when creating forms

When creating a new form for a person on a site with lots of elections
and parties, PartySet.party_choices might be called many times (over
30 in the UK case); there's no need for this, so this commit caches
the results the first time they're fetched when creating a form object
and reused subsequently, using Django's helpful cached_property
decorator.

We were seeing timeouts when users were updating some candidates -
hopefully this should fix that issue, since these were causing the
most expensive queries when updating someone.

DemocracyClub/yournextrepresentative,DemocracyClub/yournextrepresentative,DemocracyClub/yournextrepresentative