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 request API

minimal changes to get things working