libflux: implement 4-byte matchtag per RRC 3

RFC 3 has been updated for a 32-bit matchtag.  Update the the
protocol code, handle code, and libkvs.c to match.

Use FLUX_MATCHTAG_NONE instead of hardwiring a matchtag of 0 when
matching is not used.

Modify the "tag pool" to allocate from 256 blocks of 2^24 tags.
So the pool has the same capacity as before, but code that will
manage a block of concurrent requests can allocate a large block
at one time.
libflux: add flux_json_multrpc(), use in flux-module

flux_json_multrpc() is a variant of flux_json_rpc() that takes
a nodeset instead of a nodeid.  It allocates a block of
matchtags the size of the nodeset, then keeps 'fanout'
requests to nodeset members active until all nodes have been
queried.  A user-supplied callback is made for each response,
if configured.

An error from any of the RPC's causes the whole function to fail,
though it will continue until all transactions are complete and
return -1 with errno set to the highest errnum value received.

Replace the nodeset iteration code in flux-module with calls
to flux_json_multrpc().
flux-module: tidy up option passing, document

Wrap options in a struct so we can add them without changing
function prototypes.

Document -f,--fanout=N option in usage message and man page.
Merge pull request #125 from garlick/matchtag2

update matchtag protocol, add flux_json_multrpc()