Canonical Party cleanup

Add additional parties to fixture to accomodate parties in MD
data.

Add a description field to the Party model and the fixture because
the distinction between some of the catch-all or undefined parties
can get a little confusing.

Add cached lookup of Party and Office records to MD transforms,
on the way to creating Candidate records.

To help with this change the way that the key properties of the
model classes are created, allowing keys to be generated without
an instance to facilitate cached lookups of model instances.
I'm not sure if this is ultimately neccessary or a good idea.

Addresses #49, #69