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.