add inter-process coordination
add inter-process coordination

The approach we take is to have every tockloader instance either
connect to a server named uniquely for each serial port, or if one
doesn't exist make that server

For most operations, the server will just reject other tockloader
instances. If the running process is a `listen`, however, we want
to essentially pause the listen while the other operation goes through
and then resume again. Unfortunately, due the the way that miniterm
is architected, this proves much easier to do by killing off the
current listen process and spinning up a new one, with a bonus flag
that will have it wait for the other running tockloader operation to
complete

All of these server coordination things take place during the
construction of the serial port access, so it shouldn't affect
commands that don't touch serial.

Tested reasonably extensively with hail and OS X.
Closes #10.

helena-project/tockloader