jsonrpc: Run JsonRpcServer requests in their own thread

Currently it uses the transport thread.
This change creates a clear separation of control flow.

This makes sure there is a single sync point for all json-rpc requests
and that handling a request never blocks the transport for processing
messages.

Change-Id: Ifccf3fd0e3b1bec7db475b2674cff09bb920738e
Signed-off-by: Saggi Mizrahi <smizrahi@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/10252
Reviewed-by: Dan Kenigsberg <danken@redhat.com>
Tested-by: Dan Kenigsberg <danken@redhat.com>
jsonrpc: Allow JsonRpcBindings to initialize an AMQP transport

Change-Id: Ia493d9b360d6b39538c276b5eadbe2557f3d0d7c
Signed-off-by: Saggi Mizrahi <smizrahi@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/10251
Reviewed-by: Dan Kenigsberg <danken@redhat.com>
Tested-by: Dan Kenigsberg <danken@redhat.com>
jsonrpc: Add some more tests to JsonRpcTests

Change-Id: I1167f65203fbed653d876408be8137f505ab68d9
Signed-off-by: Saggi Mizrahi <smizrahi@redhat.com>
Reviewed-on: http://gerrit.ovirt.org/10254
Reviewed-by: Dan Kenigsberg <danken@redhat.com>
Tested-by: Dan Kenigsberg <danken@redhat.com>