Improvements to package and supervision scripts.

Make `package-install` and `package-remove` work properly; don't freak out
during installation/removal/supervision if a package has no services; rework
default logging code to work well for interactive use; provide completion
messages for start/stop/install/remove operations to make success obvious.

This also adds an `info` logging target for the default logging implementation;
I'll rework the non-interactive logging code in `include/logger` to support this
in the next commit.
Prefix debug information in verbose mode.
Initial build target for the "native Linux" tarball.
Slash and quote correctness.

Use single quotes wherever expansion isn't needed. When performing file
move/copy operations, use a trailing slash for arguments that are known
to be directories.
Vertical whitespace normalization (no content changes).
Use more informative filenames in output directory.
Get .py files out of /lib; ldconfig complains.
Fix failed dervice termination bug, refactor package_update.

If a service was in a failed state (i.e. sleeping before restart), we used to
hang on a read from $service.term. That's fixed; we now announce termination
correctly if the supervised process is dead but the supervisor process is still
alive.

Refactor the package_update function; there were a couple logic errors that
failed to install a package if force_install was off and the package did not yet
exist on the target machine.

Remove stray whitespace from empty lines.
Toward uptime/restart statistics.

Modify the supervisor scripts to maintain accounting data for supervised
processes, including number of restarts and seconds of uptime.

This is a work in progress; it's mostly done, but needs more testing and some
additional cleanup when services are brought down or removed. I'll finish that
up later today, and modularize `supervisor-info` a bit.
Refactoring service supervision scripts.

This is a work in progress. In general, I'm fixing edge cases, enforcing
preconditions, and improving error handling.
Show PIDs; don't hang in svc-down if a service is spinning.
Fix: Write exit accounting data at the proper time.
Suppress "interrupted system call" message properly.

This error message gets emitted from the `_supervisor_process` thread when a
supervisor_stop or package_remove operation closes the "service down" FIFO.
It's safe to ignore it: `_supervisor_process` is about to terminate anyway.
We had the right idea originally, but put the redirection in the wrong spot.
Merging a couple trivial changes.
Reset generation number appropriately.

The generation number is used to report the number of restarts that have
occurred since supervision began. The number of restarts is the generation
number minus one.
Set up environment appropriately in recovery console.

We need to eventually convert the $PATH management code over to a
`profile.d` sort of scheme, so that packages have control over their
own required environment variables. Until then, this should work.
Minor improvements to package/supervisor scripts.
Rework filesystem mounting code in container-start.
Add a build timestamp for the initrd and each package.

We should be able to use these, in the worst case, to figure out
whether an installation is outdated and/or has a particular feature.
Add Changelog, rewrite README, widen version space.

The package version numbers now employ two digits for the revision number, two
digits for the minor number, and one or more digits for the major number (in
order from least to most significant digits). The version string 3.15.3 would be
represented as 31503. We're using an integer only because it's easier for
command-line jobs and shell scripts to deal with.