[backend] replace gevent with Gruvi

Migrate away from gevent and use Gruvi as the IO library.
The code base has also been made to work with Python 3.
[frontends/qt] give the Qt frontend its own JSON-RPC client

Previously it was re-using parts of the now-obsoleted backend "MessageBus"
infrastructure. The Qt frontend now has its own JSON-RPC client that is hooked
into the Qt event loop. It uses some Gruvi plumbing including the JSON-RPC
parser.
[refactor] simplify source layout
[backend] use Gruvi's logging infrastructure
[main] simplify startup sequence

There is now a single main() function that starts up both the backend
and the frontend. The frontend is not responsible any for starting up
the backend.
[refactor] do not depend on six anymore
[setup] depend on development version of Gruvi
fixup source layout change
Make it work on Python2 again.
[socketapi] debugging feature: tracing
[backend] allow specification of listen address
[logging] simplification
[frontends/qt] use util.create_connection()
[docs] updated README
[setup] update dependencies