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 flux-module

flux_json_multrpc() is a variant of flux_json_rpc() that takes
a nodeset instead of a nodeid.  It has a simple implementation
that allocates a block of matchtags the size of the nodeset,
sends requests to all the nodeid's, then waits for responses.
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().