bridge: Implement a new dbus-json3 protocol payload

This protocol is much simpler than the others. There will be some
additions to it in the future, but at it's core it's about relaying
messages and signals.

We don't have innate object manager support in the bridge, the
javascript code will respond to events and update an object model
there.
base: Implement a javascript client for new dbus-json3

This implements a simple javascript client for dbus-json3. It has
no proxy support at this time, but that will be added later.

Fixes #1352
Fixes #1355
doc: Add documentation for cockpit.dbus and related

Closes #1356
bridge: Add explicit 'type' support for dbus-json3

You can specify the 'type' of a call, and then no Introspect() will
be needed when calling the method. In addition, the 'type' will be
returned in the reply.
bridge: Add support for flags in dbus messages

The only thing we do now is report the endianness of the message
as a flag. But in the future this is where things like the new
PERMIT_INTERACTIVE_AUTHORIZATION flag will go.

Fixes #1358
bridge: Implement support for monitoring properties

 * Watch support for monitoring DBus properties.
 * Introspection meta data suppport.
 * Proxies, and caching of data in javascript.
 * Ordering guarantees for method calls vs. interfaces appearing,
   including signals, error returns, etc..

Closes #1356