api: create 'dq' class in libapi

Create a tiny abstraction for the deferred message queue in libapi
so we can more easily replace its implementation.
api: use inproc sockets for dq class

This allows our deferred queue to make the reactor ready and
should address issue #81 for api sockets.
reactor: oneshot timer should remove self from reactor

Fixes #84
api: make dq socket unique per-handle

Ensure that each handle has unique inproc:// socket names for
its dq sockets.  I don't think this is actually a problem right
now since each API handle currently has its own zctx, but this makes
the code less fragile should we we later allow the zctx to be provided
externally, and shared between handles.
Merge pull request #86 from garlick/oneshot-timer-unreg

reactor: oneshot timer should remove self from reactor.
Fixes #84
modules: use inproc sockets for deferred req

This allows deferred messages to make the reactor ready and
should address issue #81 for module handles.
tkvswatch: add a test kvs watch modifying own key

This is a test for issue #81
Merge pull request #85 from garlick/api-handle-dq

handle deferrred messages with an inproc socket.
Fixes #81.