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.
Fix typo.
Rework logging functions to make overriding work reasonably.
Mark unprintable ranges in prompt.

The Busybox line-editor source code contains the following comment: "lineedit
does not know that the terminal escape sequences do not take up space on the
screen. The redisplay code assumes, unless told otherwise, that each character
in the prompt is a printable character that takes up one character position on
the screen.  You need to tell lineedit that some sequences of characters in the
prompt take up no screen space. Compatible with readline; use the \[ escape to
begin a sequence of non-printing characters, and the \] escape to signal the
end of such a sequence.

Use these, so that the line editor input wraps in the right place.
Use recovery console on tty6; paranoid use of sync at shutdown.
Fix prompt; fix shell invocation.
https://github.com/medic/medic-webapp/issues/706

Toward #706: Add view regeneration implementation, but don't actually invoke it
yet. The next commit will switch it on; the view regeneration will likely be
launched as soon as the password is set, and be checked as a last step in the
`medic-api` polling code.
Refactor: prepare for additional user creation steps.
Whitespace removal.
Refactor; create named administrative user.

This patch cleans up the CouchDB user/password creation process, and adds two
steps aimed at creating a named administrative user alongside the ordinary
`admin` user. I still need to figure out how to store the most recent
administrative username, so we can remove any old account if the process is
repeated using a different name.

Eventually, we may want to skip creation of the `admin` user entirely. It's
useful to have a known/fixed account name if the chosen user name is forgotten,
but it's potentially a brute-force password guessing target.
Delete unknown users: mostly finished.

This makes the user creation process repeatable, by seeking out and deleting any
previously-created administrative users and/or user documents. The latter isn't
yet working, because a `rev` is required for a successful user `DELETE`
operation. The next commit should solve that problem, as well as turn on the
view regeneration code. After that, the backend code should be done, and all
that'll be left is some minor UI reworking.
Fix user document deletion; setup now repeatable.

The user deletion code now properly queries the `_users` database for the proper
`_rev` value. With that value in hand, user documents are now deleted properly.

Note that the deletion is driven from the `_config/admins` list, rather than
from the list of user documents: if you have admins `{ A, B, C, D }` and users
`{ B, C, D, E }`, you'll have admins `{}` and users `{ E }` post-deletion.
Use `url` instead of `uri`; add is_builtin_user_name.
Display immediate feedback on shutdown.
Remove default `admin` username.
Enable view regeneration.

This is working, but can probably be tidied up a bit – we need to differentiate
between view-regeneration-in-progress and view-regeneration-not-started, just in
case someone hits `/setup/poll` before `/setup/password`.