Fixed validate_obama_primary_candidacy_2012

As a result of the changes made for
https://github.com/openelections/core/issues/91, the abbreviation
for the Democratic part is 'D', so the heuristics for this
validator needed to change.
wv corrections
Merge branch 'dev' of github.com:openelections/core into dev
wv post-2006 loader fix
Add validator for aggregating districty by county results

Add a validator for the aggregation done by Maryland's
``create_district_results_from_county_splits`` transform.

Addresses https://github.com/openelections/core/issues/36
Add validator for county congressional results

Add a validator, ``validate_2000_primary_congress_county_results``,
that checks that county-level results for congressional offices in the
2000-03-07 Maryland primary have been created.

This validates the ``create_2000_primary_congress_county_results``
transform.

Addresses https://github.com/openelections/core/issues/36
Clean up validate_aggregate_congressional_district_results

Query results using ``contest_slug`` and ``candidate_slug`` to avoid
having to retrieve Contest and Candidate instances.

Add assertion messages.

Addresses https://github.com/openelections/core/issues/36
Validators for result, contest and candidate counts

Add validators for result, contest and candidate counts for
Maryland's 2000 primary.  In order to describe and calculate the
expected counts, I created two utility classes,
``MDElectionDescription`` and ``Primary2000ElectionDescription``.

This was somewhat tedious to implement, but organizes this information
in a better way than calculating it within the validator functions.

It might make sense to move these definitions, especially the lists
of counties and districts, to a separate module/package or add them
to the metadata collection process.

Addresses https://github.com/openelections/core/issues/36
Include contest slug when creating, looking up candidates

The name-based candidate slug is not enough to differentiate candidates
when creating Candidate records or looking them up in transforms.

This is because of the "Other Write-Ins" candidate appears in multiple
contests.

Including a contest slug will differentiate this pseudo-candidate
between different contests.

Closes https://github.com/openelections/core/issues/97
Task to launch Python shell, bootstrapping database connection

Inspired by Django's django-admin.py shell management command.

This is much simpler, and doesn't try to use IPython or bpython,
but it works for me and it's a start.

Closes https://github.com/openelections/core/issues/105
Merge branch '36-md_validators' into dev

Work in progress on Maryland validators and shell invoke task