RawResult bakery

* Refactor common bakery functionality into a ``BaseBaker`` class
and make ``Baker`` inherit from ``BaseBaker``.
* Clean up docstrings to clarify which methods should be overridden.
* Update Roller and Roller tests to reflect model changes.  Roller
  wasn't updated after RawResult was implemented.
* Implement separate Roller classes for Results and RawResults
* Generalize field transforms instead of expecting all field
  transforms to just be field renaming transforms.
* Exclude ``name_raw`` field from the baked output.  Eventually,
  we'll need to wire ``RawResult`` into ``Roller``, but I didn't
  want to get in these weeds until after implementing the
  ``RawResult`` bakery.
* Add ``--raw`` flag to the ``bake`` invoke task to toggle baking
  raw vs. cleaned results.
* Create a generalized function to generated election-related filenames,
  ``openelex.lib.standardized_filename()``.
* Add a roller field transform to flatten out nested dictionary fields.
  This is needed to handle ``RawResult.vote_breakdowns``.
* Add a new invoke task, ``bake.election_file`` to better reflect the
  use case of the raw bakery.  While the original bake task was designed
  around arbitrary filters, the raw bakery is designed to bake one file
  per election.
* Use unicodecsv for writing results instead of csv.
* Fix docstring for ``BaseDatasource.elections()``.

Addresses https://github.com/openelections/core/issues/152
Merge branch '152-rawresult_bakery' into dev

Conflicts:
	openelex/tasks/bake.py