Merge branch 'release/0.1.0' into develop
README: Add missing link to customization docs
find: New command for locating files in enabled packages
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).
homectl deploy: Setup git submodules correctly

We weren't calling 'git submodule' correctly -- we were asking it to
update, but we need to tell it to initialize, too.
Merge branch 'develop' into feature/loader-emacs
homectl list: List full paths to packages

That way it's easy to see exactly which packages are enabled -- using
just the name is less user-friendly because there might be multiple packages
with the same name lying around.
homectl: Make name-validation more user friendly

Emit an appropriate error message depending on what the actual problem
is.
homectl enable/disable: Use paths, not names

Take the path to the package when enabling/disabling packages.

For enable, this change is not user-visible because we did this before.
But it DOES allow us to support enabling multiple packages at different
paths with the same basename, which helps us to handle name collisions
(e.g. with packages from different sources).

For diable, this change IS user-visible -- users must now specify the
path instead of just the basename.  This is ultimately more convenient
though because they can take advantage of shell tab-completion whereas
they couldn't before.
homectl: Use resolve-path instead of homectl-resolve-path directly

My previous couple commits called homectl-resolve-path directly, which
is wrong because it may not be in $PATH.  Use the helper function that
was already there (oops).
homectl enable: Create links with consistent names

If we create links using mktemp, then "homectl disable" followed
"homectl enable" on a link that is checked in to Git will cause Git to
report there is a difference, even if there isn't one (morally
speaking).  Fixing this up manually is annoying and potentially
confusing.

Instead, sanitize the link target and use it for the link name as well.
That way we are guaranteed to use the same link name for the same link
target every time, and a disable/enable pair won't cause Git to report
spurious changes.
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.
homectl refresh: Use the right package path

As part of commit e11b589a, wherein "homectl list" was changed to report
full paths.  However, I forgot to update "homectl refresh", which was
still expecting "homectl list" to return only the name of each package
and not the path.  As a result, we were passing bogus paths to
enable-internal.

Don't prepend the path when calling enable-internal from refresh, since
it's there already.
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.