libflux: add version byte to wire protocol
libflux: rework message api

flux_msg_create () now takes one argument, the message type.

Instead of scanning and guessing, add a protocol flag to
indicate presence of routing delimiter, and routing accessors
to get/set the flag/delim and manipulate the stack of route
frames.

Treat payload and topic string like other message attributes
with get/set accessors.

Add functions for matching topic strings in place (no malloc).

Expand unit tests.
libflux: request.c use new message API

minimal changes to get things working
api: use new message API

minimal changes to get things working
broker: use new message API

minimal changes to get things working
libflux: rename route enable/disable etc

Rename FLUX_MSGFLAG_RTE to FLUX_MSGFLAG_ROUTE
Rename flux_msg_set_rte (zmsg, true) to flux_msg_enable_route(zmsg)
Rename flux_msg_set_rte (zmsg, false) to flux_msg_clear_route(zmsg)
Eliminate flux_msg_get_rte.

Ensure that route accesors do the right thing with an empty
route stack (set id to NULL) and with a message that has no route
delim (EPROTO).

Add inline comments for routing functions in message.h and update
unit tests.
libflux: request.c update use of renamed route functions
api: update use of renamed route functions
broker: update use of renamed route functions
libflux: inline doc comment on payload functions
Merge pull request #113 from garlick/message-api-rework

Wire protocol and message API improvements