state machine to start/stop flashlight

Listens to IP, disconnect, and changes between give and get mode to
make sure the flashlight server runs if and only if we have an IP
and we are in give mode.

This is only the triggering logic.  Actual starting, registering,
stopping, and unregistering the local flashlight server are not
done yet.
minor comment/log typos
start/stop flashlight
first shot at registering flashlight server
add heartbeat timer
integrate code review feedback, except tests
don't stop FlashlightServerManager on disconnection
logging enhancements
Merge pull request #1626 from getlantern/flashlight-server

launch flashlight server as long as we're connected and port mapped in give mode