yk: Handle disconnect/reconnect of yubikey

* Also check the status before continuing on.  Reconnect if bad.
yk: qDebug() and qWarning() insted of fprintf()

* More QT / C++ way to do it.
yk: Unbreak non yubikey build

* Fix stub file breakage from recent changes.
yk: Document driver code briefly

* While it's all fresh.
yk: Enable consumers to query blocking state

* Query whether the device is in a blocking mode or not.
tests: yk: Add inital unittests

* Unit tests against hardware are hard.  Goal was to be non-interactive
  and hence the Yubikey must be in non-blocking mode (ie no button
  press) for confirmation.
* Test skips if no Yubikey is attached or if not compiled with Yubikey
  support.