openelex management command

Instead of using invoke to run our tasks, use our own ``openelex``
management command.  The main motivation for this is to be able to
run the command from any location and not just from the ``openelex``
directory in the project's working copy.

The management command uses the click library (http://click.pocoo.org)
to handle options and the nested command routing.

Update the setup.py file to use setuptools instead of distutils to
leverage the ``entry_points`` argument to automatically create
the ``openelex`` script.
See
https://pythonhosted.org/setuptools/setuptools.html#automatic-script-creation
and http://click.pocoo.org/3/setuptools/#setuptools-integration

Addresses https://github.com/openelections/core/issues/217
Add dependencies to setup.py

Add dependencies to setup.py using the ``install_requires``
argument to ``setup()``.

Pare down the list of dependencies
from the one in requirements.txt to only include the top-level
dependencies that are directly imported in the openelex package.
It looks like the original list in requirements.txt was created
by someone just running pip freeze.

Addresses https://github.com/openelections/core/issues/217
Update installation instructions

Update installation instructions in the README so they instruct the
user to install the ``openelex`` package as an editable package
by running:

pip install -e .

This will automatically put the package on the virtualenv's
PYTHONPATH and create the ``openelex`` executable, so instructions to
do that explicitly are no longer needed.

Remove the ``bin/openelex`` wrapper script since we're now using
setuptools to create the executable.

Addresses https://github.com/openelections/core/issues/227
DRY up requirements.txt

Now that dependencies are in setup.py, DRY up the requirements.txt
using the pattern described at
https://caremad.io/blog/setup-vs-requirement/
Merge branch '217-openelex_command' into dev