Update model slug handling

Populate Result.contest_slug and Result.candidate_slug using a
post_init signal handler instead of a pre_save signal handler so
the fields get populated even when doing bulk inserts in the
transforms.

Similarly, set Candidate.slug in a post_init signal.  Generate
the slug in a make_slug() class method so that external code can
generate slugs in the same way for lookup tables.

Add Result.make_slug() so external code can generate keys for
lookup tables of results.
Add transforms to handle congressional district results split by county

Add a transform, create_district_results_from_county_splits, to aggregate
congressional district results split by county into a single Result for that
congressional district.  This is needed to create congressional district level
results for presidential and congressional contests in some primaries.

Add a transform, create_2000_primary_congress_county_results, to create
county-level results for congressional contests in the 2000 primary.  This is
needed because, although raw results for these races are provided at the county
level, it's hard to flag them as needing aggregation (to the district level)
and create county-level results in a single pass.

Update _get_ocd_id() to allow overriding the RawResult instance's reporting_level field.

Addresses #49, #80