loader-emacs: First cut at an Emacs loader

Look for and load Emacs packages, and also pull in PATH, etc. from the
homectl environment (in case we're running in Aqua).
Merge branch 'develop' into feature/loader-emacs
Merge branch 'develop' into feature/loader-emacs
loader-emacs: Add support for package.el

Support consists of a homectl-require function which will use package.el
to fetch third-party packages required by a homectl package.  We also
include a mechanism for downloading/installing package.el if it's not
already available.
loader-emacs: Load package.el on demand

Only go to the trouble of fetching and loading package.el if there's
some package in the setup that isn't already available.  That way
startup is faster and users who don't have or need package.el won't be
annoyed by our repeated attempts to install it.
loader-emacs: Prompt before installing packages

Since we are downloading potentially arbitrary things over the Internet,
it's good form to at least prompt the user first.
loader-emacs: Fix bug in on-demand package.el loading

Load package.el before we try to require anything installed by it,
otherwise our load-path won't be setup properly, and we will wrongly
assume the package isn't installed.
loader-emacs: Use string-match-p instead of string-prefix-p

The latter is not available in older Emacsen.
Merge branch 'develop' into feature/loader-emacs
loader-emacs: Drop support for downloading package.el

Any modern package.el (i.e. one that supports the package-archives list)
depends on things that are only in Emacs 24, which already has
package.el.  So there's no point trying to download it.
Merge branch 'feature/loader-emacs' into develop
homectl enable: Fix $PATH-incompatible name mangling

In commit 5f50b846, I made the rather unfortunate choice of ':' for an
escape character when mangling path names to create symlinks in
~/.homectl.  This choice is unfortunate because it turns out that ':' is
the separator used in most environment variables (like $PATH).  Oops.

Use '@' as an escape character instead.  Change the other escaped
special characters accordingly.