Move sub-commands to libexec dir out of path

This aligns the behaviour with git, so that sub-commands belong in their own
libexec dir outside of the normal PATH of execution.

Legacy commands are left in their original path locations, but replaced with
a wrapper script that returns a warning and executes the new sub-command for
the user. This provides us with a way to eventually remove these command
place-holders when we are ready to remove the legacy hyphenated subcommands.

Signed-off-by: Ken Barber <ken@bob.sh>