Configure rumprun-xen application stacks from Xenstore

In order to run rumprun-xen applications that are actually useful, we
need to be able to configure block devices and network interfaces.
These changes implement a basic mechanism to do this using Xenstore.

Conceptually the changes consist of the following parts which work
together:

- The rumpconfig module provides _rumprun_config() and
  _rumprun_deconfig() functions. These are called before and after the
  application main() function, and also in the case of deconfig when
  _exit() is called.

- These functions rely on keys like the following being present in
  Xenstore at the time the domain is started:

  /local/domain/<domid>/rumprun/net/0/... (first network interface)
  /local/domain/<domid>/rumprun/net/1/... (second network interface)
  /local/domain/<domid>/rumprun/blk/0/... (first block device)
  /local/domain/<domid>/rumprun/blk/1/... (second block device)

- The "xr" driver script, currently located in app-tools/. The
  motivation for this script is twofold:

  Firstly, in order to write the configuration to Xenstore the domain
  must be created in a paused state so that we can retrieve its unique
  <domid>. Only then do we know where in Xenstore to write the
  configuration data.

  Secondly, it is my intention with this work to provide a
  "docker-alike" interface for running rumprun applications. The "xr"
  script is therefore the CLI for running such applications.

Note that in this initial version, only configuring IPv4 network
interfaces with DHCP is supported, and only using image files with ffs
or cd9660 filesystems for block devices is supported.

Signed-off-by: Martin Lucina <martin@lucina.net>
Add support for static IPv4 configuration

Signed-off-by: Martin Lucina <martin@lucina.net>
xr: Add -N and -M options

Signed-off-by: Martin Lucina <martin@lucina.net>
xr: Rename to rumprun-xen

Rename the "xr" driver script to "rumprun-xen" to better reflect it's
purpose and scope.

Signed-off-by: Martin Lucina <martin@lucina.net>
app-tools/specs.configure.in: Add rumpnet_config components

The rumpconfig module depends on rumpnet_config, without this change
rumpapp-xen-configure does not work ("C compiler cannot create
executables").

Signed-off-by: Martin Lucina <martin@lucina.net>
Rename rumprun-xen to rumprun

To reflect the intent to support different stacks in future (eg. kvm),
rumprun-xen is renamed to just rumprun, with a mandatory STACK as its
first argument.

Signed-off-by: Martin Lucina <martin@lucina.net>
rumprun: Change delimiter for BLKSPEC and NETSPEC to comma

Will work much better for IPv6 and/or NFS.

Signed-off-by: Martin Lucina <martin@lucina.net>
Correct argument parsing in rumprun

Signed-off-by: Martin Lucina <martin@lucina.net>
Merge pull request #12 from mato/wip-rumpconfig

Major points from rumpkernel-users addressed, merging.