libflux: add matchtag to protocol
libflux: add matchtag arg to request functions

Add 'matchtag' argument to flux_response_recvmsg() and flux_json_request().
Change flux_json_rpc() to internally allocate/free a unique matchtag.

Legacy request functions set 'matchtag' to zero in
flux_response_recvmsg() and flux_json_request() to get the legacy
behavior.

Special KVS note:  kvs_watch() was changed to allocate a matchtag and hold
it for the life of the handle since a kvs_watch() request has multiple
replies and persists until the handle is destroyed.  The design of
kvs_watch() will be revisited - see issue #75.
Merge pull request #123 from garlick/matchtag

implement matchtag protocol enhancement