Switch dependency from PyUserinput to PyMouse
Update README.
Only load PyMouse if we're going to use it

Load PyMouse in the pymouse input driver generator so that it's never
loaded if it's not being used.

This is necessary because some versions of PyMouse will freeze for up to
30 seconds at import time due to an interaction with a PyObjC bug
(specifically, PyObjC uses a lazy loader that is very slow when its
packagages' contents are loaded with the form `from ... import *`, which
is exactly what PyMouse does).

Also, surround the import with logging statments so the user hopefully
has at least some feedback if the program hangs during the import.
Convert README hyperlink from md to RsT.
Pass distance metric from eye tracker to display

The on screen display now requires distance in addition to x, y as part
of its coords param. Update the eye tracking input driver to comply.
Remove debugging stuff in arduino_serial

Debugging code is breaking arduino_serial due to hardcoded output file
names.

Remove.
Restore serial_output driver functionality

The serial_output driver for Arduino mouse emulator support was losing
data somewhere between sending mouse coords into the OpenCV/parent
process' end of the shared pipe and receiving that data in the
serial/child process' handler.

Reimplement the multiprocessing handler and change the shared data
strucutre from a Pipe to a multiprocessing.Queue.

This lets us

1. block while waiting for data to become available on the queue, and
2. block while sleeping/waiting for the next mouse output update
interval to trigger.
Move queue len magic number to constant
Freeze required package versions

Additionally, point at a patched version of PyMouse on Github. The patch
solves the hang-at-import bug.
Avoid relying on FS locations of package data

Load the eye tracking cascade XML file from a package_stream rather than
a filesystem file so that we don't require running from an exploded egg
on a filesystem. Prep for possible PyApp support.