Wire protocol and message API improvements

Wire protocol changes:
* A protocol version is included in each message.
* A new flag indicates whether route delimiter is present

API changes:
* `flux_msg_create()` takes one argument (the type)
* topic and payload now manipulated with get/set accessors
* accessors added for route frame stack and delimiter
* `flux_msg_set_flags()`, `flux_msg_get_flags()` removed from public API
* in-place topic string match functions added (no malloc required)

Message unit tests expanded.

Although the message functions that have been used to date have been moved to a _deprecated_ section of the header file, they are still used pretty much everywhere, and unit tests cover them.  The only places where the new API made inroads is in the api module, broker, and request.c where messages were being manipulated directly, e.g. to add and remove routing delimiters.