Fix build on master after depending on external libgsystem

We forgot to update the #include lines, and didn't notice because
our repos still contained the relevant header.

Closes #401
data: Have 'cockpit' systemd unit files be what starts cockpit

Less suprise and complexity for people trying out Cockpit or
using it temporarily. We want them to be able to do:

 # systemctl start cockpit

And have cockpit work.

Closes #398

Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
configure.ac: We don't use gtk-doc, don't require it to build

Closes #396

Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
daemon: Disable unreliable test of CPU usage

This is hard to predict currently, and leads to sporadic failures
when building in mock or elsewhere. Needs work, but lets disable
for now.

Closes #397

Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
* Added todo comment
build: Don't dist generated sources

Don't distribute the sources generated by gdbus-codegen or glib-mkenums.
These break the build on systems that are disimilar from the one that
'make dist' was run on.

Closes #399

Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
configure.ac: Locate com.redhat.lvm2.xml interface during configure

Fixes #197

This is needed to prevent the previous patch from breaking 'make
distcheck' as $(datadir) was defined to a non-system value.

Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
Ignore some build output
agent: Add cockpit_channel_get_generator() function

Returns a cached generator from the channel, which can be shared by
both implementations and the channel itself for efficiency.
agent: Add the cockpit_channel_close_int_option() function

This adds an integer option to the close message for the channel.
It must be called before the channel close message is sent.
web: Expose channel close options in Channel.on("close")

Instead of having a reason argument to the event, there's now the
full options, so handlers can access any field of the close message.
This is symettrical with the Channel(@options) constructor.

In addition accept @options instead of a @reason in Channel.close()
agent: Add cockpit_channel_get_strv_option() function

Used by channel implementors to get a string array from the
channel options. Implemented this using cockpit_json_get_strv()
utility function.
common: Add cockpit_pipe_get_pid() function

We're needing to check on the pid, and whether a pipe has a pid
in a few places. So make this a real function instead of forcing
use of g_object_get (pipe, "pid", ...);

In addition guarantee that cockpit_pipe_get_pid() will still return
the pid after 'close' has fired.

Also add some testing infrastructure to test-pipe. This will be
used further in later commits.
common: Rename CockpitPipe 'closed' signal to 'close'

It was conflicting with CockpitTransport's 'closed' signal and
CockpitPipeTransport ended up with both overlapping.

The 'close' name matches the other method and signal names in
CockpitPipe better as well.
common: Split exit status handling out of CockpitPipe

The exit status handling in CockpitPipe was very specific to
the launch code in cockpit_pipe_transport_spawn(). Move this
logic into CockpitPipeTransport instead.

We want to use CockpitPipe for arbitrary processes and need
clean exit code handling.

Add cockpit_pipe_exit_status() function for retrieving the
exit status of the reaped child process.
common: Add cockpit_pipe_spawn() function to create process pipe

This is more general than cockpit_pipe_transport_spawn(). Once we
migrate to libssh then cockpit_pipe_transpown_spawn() should be
rewritten to use cockpit_pipe_spawn().
agent: Implement text-stream channel with spawn argument

This launches a process and connects the channel to the standard
input and standard output of the spawned process. Standard error
goes to the same output as the agent's unless redirected.

The command is not passed to the shell, it should be a full
executable path.

The doc/protocol.md documentation has some details on how
to call this.
web: Implement $cockpit.spawn() method

This creates a deferred jQuery object on which you can listen for
output from a process, send data to the proces, etc...

Internally uses the text-stream channel with a "spawn" open
option.

Documentation in spawn.js
daemon: Zero unlimited memory limits in CGroupMonitor

When memory cgroups have no limit, they set to MAXUINTXX of the number
of bits of the platform. This is much easier to detect in C code than
in javascript, so set these to zero (ie: no memory limit) in
CGroupMonitor.

Because this is platform depend
daemon: Add tracking of CPU shares into CGroupMonitor

This lets us see changes in this setting.

As we noted earlier our cgroup monitoring scheme needs so me fine tuning.
And we don't try and do that here.
web: Load default Memory, CPU, and TTY run settings from image config

Closes #379