common: Ignore zero byte data blocks in cockpit_pipe_write()

It doesn't make sense to write zero bytes to a stream, and
the logic in dispatch_output() isn't ready for it.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
ws: Clear input data POSTed to web server before freeing

This data may contain passwords and such.

Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
ws: No threading or blocking in CockpitAuth

To do this we treat login separately from loading cookies. This was
already the case, but we make it clearer.

Actual PAM authentication happens in cockpit-session, so we simply
get notified when it completes and then complete the async login
web response.

There's room to make this cleaner, but will wait until we get GSSAPI
authentication in the mix before refactoring it further.

Closes #557
Reviewed-by: Marius Vollmer <marius.vollmer@redhat.com>
agent: Fix another use after free in CockpitDBusJson
agent: Fork CockpitDBusJson into the old CockpitDBusJson1

We'll be implementing a new dbus-json2 protocol and migrating
away from dbus-json1

The javascript code which calls into the old protocol is rather
ugly, requiring explicit use of { protocol: "dbus-json1" }
everywhere. That's intentional.

The first change to the new dbus-json2 is that we include the
signature along with variants like this:

 { "sig": "u", "val": 1234 }

Closes: #568