Unembed Office, Party

Use DynamicDocument for Office and Party models instead of
EmbeddedDocument and reference them using a ReferenceField on
Candidate.  If they're EmbeddedDocuments, the data is replicated
and we can't look up office or party when creating Candidates in
the transforms.

Addresses #49, #61