Add unzip(1) to the MK, used to unpack the runtime extension file

We serve a zip file from the server in order to allow runtime extension of the
Microkernel runtime; the most efficient mechanism to allow unpacking that is
the unzip(1) binary, which also has happily consistent feature support and is
maintained upstream in the distro.

This adds the binary to the ISO image, nothing else.

https://tickets.puppetlabs.com/browse/RAZOR-42
Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Add mk config command to extract a configuration variable

This makes it possible for external tools to access the configuration
discovery and parsing functionality embedded in the MK Ruby script, without
having to be written in Ruby.

This is used by the extension system to allow the external shell script to
obtain this data without reimplementing the configuration parsing externally.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Add mk-update wrapper to LiveCD

This adds an mk-update wrapper script to the LiveCD which is designed to
download, and unpack if changed, the extension zip file.  It will then execute
the original MK application with the appropriate environment variables set.

Separating this out into a separate executable helps ensure that we can always
run the update process, even if it drops something onto disk that would cause
the mk executable to fail.

This makes it significantly easier to recover from a failure than if they were
bundled together and this feature could be damaged or disabled by the change.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>
Switch client to mk-update rather than mk

This enables client-side updates to be downloaded and used automatically as
part of the normal checkin process.

Signed-off-by: Daniel Pittman <daniel@rimspace.net>