Add logging module

Add hhlog so there's actually a common logging module.  Can log to a file,
syslog, or stdout (in any combination).
Refactor common client/server code

In anticipation of adding clientside support to heelhook, refactored all
the code that will be common between client/server into a new module,
endpoint.

The responsibility of the endpoint module is basically to read/write
data from existing file descriptors, and notify the user of any
websocket messages.

The responsibility of the 'server' module is to open/close all sockets,
and schedule reads/writes to those sockets.  This makes the hierarchy:

server > endpoint > protocol

And when clients are added it will be:

client > endpoint > protocol