Experimenting with BlockwiseImpl

+ Disabling asio mode with ClearCommError enabled resulted in reboot with
  CH340 USBCOM adapter when many commands were executed repeatedly with
  almost no interval.

+ Removing ClearCommError and trying to read from serial 1 byte at a time
  didn't changed u2py timings at all. Yet, without 1-byte read (trying to
  read 255 bytes in main read cycle) those timings were exactly equal to
  AsioImpl/AsioMTImpl.

+ Previously described "reboot feature" wasnt noticed after previous
  change, but it can still be heisenbug.
BlockwiseImpl now uses 1byte reads
Native implementation now use boost::asio COM timings
Multiple changes:

+ Added test impelementation for 1-byte asio read.
  Proved unstable so far, so base implementation was testored.
+ Now using shared_ptr + weak_ptr to ensure correctness of inter thread
 communication.