Invoke task to publish raw results

Create an invoke task, ``publish`` to publish raw result files
to GitHub.

It can be run like:

```
inv publish --state=md --datefilter=2000 --raw
```

Encapsulate publishing logic in classes in ``openelex.base.publish``.
The goal is to create an interface for publishing that will let us
swap out destinations.  For now, we publish to a GitHub repo and
GitHub pages.  The implementation for this is in the
``GitHubPublisher`` class.

Reorganize registration of tasks in ``tasks`` module so tasks
are registered in alphabetical order.

Addresses https://github.com/openelections/core/issues/156
Merge branch 'dev' into 156-publish_raw_results
Publish result files to GitHub.

Addresses https://github.com/openelections/core/issues/156
Merge remote-tracking branch 'origin/dev' into dev