cockpit: Fix problems with JSON generation and parsing

Fix various issues with JSON generation that are present in upstream
json-glib:

https://bugzilla.gnome.org/show_bug.cgi?id=727593
https://bugzilla.gnome.org/show_bug.cgi?id=728951

In addition clean up our JSON parsing and generation API so we don't
have to constantly carry around JsonGenerator and JsonParser objects.

Fixes #413

Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
daemon: Remove workarounds for lousy JSON encoding

json-glib had a generator bug, and we do our own generation now.
So remove the hacks necessary to work around json-glib.

Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
spawn.js is auto-generated and .dirstamp is used internally by automake.
Let's ignore both.
common: Clearer split between CockpitPipe and CockpitPipeTransport

After this commit CockpitPipeTransport owns a CockpitPipe. This
simplifies the spawning constructors, and moves the cockpit-ws
logic into that code, rather than leaking it into common code.

In addition the "name" property of CockpitTransport, doesn't need
to be writable. Each of the transports now derive their logging name
from another property.

Closes #503

Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
ws: Use global tunables for setting testing/debug/mock options

Instead of cluttering up function signatures, use global tunables
to set tunables used during testing or in debug mode.

Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
cockpit: Add cockpit_json_parse_object() method

And make cockpit_json_parse_bytes() return a JsonObject. It's by far
the most common situation that we're parsing and writing JsonObject
rather than individual JsonNode. So make those cases realy easy.

Related to #413
Closes #508

Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
- Removed a merge conflict header
- Added an = NULL in cockptidbusjson.c
web: Add "de" translations.

Also, reformat some HTML so that the strings look better in the po
files.

Translations are not yet complete, and the translation mechanism has
regressed a lot when moving to Patternfly, so this is just a small
initial step.
WIP: Put cockpit-main into $cockpit scope.
WIP: Move connection_config and language_* into $cockpit.scope.  Docs.
WIP: Move initial login attempt to login.js.
WIP: get/put dbus clients.
web: Remove jqmismin cockpit-dashboard.
WIP: Broke everything except dashboard and initial setup.

By rewriting them to be independent and not use cockpit_machines et
al, and removing cockpit_machines and especially cockpit_dbus_client.
WIP: Reload on log out.

Saves a lot of trouble.
WIP: Always reseed DBusClient, even the first time around.

This makes it possible to ignore its state when one is listening to
changes anyway.
WIP: Debug.
WIP: Remove expecting_disconnect.
WIP: Fixes.
WIP: Unbreak #server.
WIP: Add DBusClient.get.

Useful to make method calls before the client is ready, but it's not
yet clear how useful that is.