Test FTDI read timeout to be 16 ms

On Linux, there is a strange bug that sets the timeout to zero.
However, after sleep, with the FTDI device still plugged in *and
used at least once*, the timeout kicks in and the effective
timeout will be the 16 ms promised by a timeout inside the FTDI
chip.

Test that the timeout is 16 ms, not less.  We expect to not see
data, so the PMT voltages must be zero!
No hardware present is an expected failure
Created a FtdiChip using pylibftdi
Added flush, close, del and more exceptions on FtdiChip
Implemented read and write in FtdiChip, with retries
Also retry write
Added docstrings (ftdi_chip now PEP 8 / 257 compliant)
MuonlabII now uses FtdiChip instead of pylibftdi
Added very basic logging to muonlab
Only close device if there *is* a device
Added 'failed' logging
If the muonlab process shuts down, don't wait
Created FakeMuonlabII for testing applications
Return fake data at 2 Hz
Testing correct start / shutdown code with exceptions

The multiprocess lifetime measurement with HTTP API now has the following
properties:

    - ctrl-c (interrupt signal) is ignored in the muonlab process
    - ctrl-c is catched by the main thread and a shutdown is initiated
    - exceptions in the muonlab process will terminate it prematurely and
      the main thread will initiate a shutdown of the flask server
    - a shutdown of the flask server (which I can't trigger since flask
      seems to handle exceptions very well) should initiate a shutdown as
      well.
    - a shutdown terminates the flask process, but sends the muonlab code
      a shutdown signal and then joins the process.

This seems to work really well.
Minor improvements to muonlab_with_http_api

Replaced print statements with logging, removed timeouts, disabled STOP
API call, return json.
App falling back to fake hardware if device not found
API: get all data or from a starting index
Use start and stop indexes in query strings
Initial Processing sketch for muon lifetime