Fix `rustpkg help` handling

In general, you could run "rustpkg help <cmd>" to see some specific
usage information for <cmd>.  However, this was handled in a very ad-hoc
and buggy manner.  For example, running "rustpkg help prefer" would
actually show you the usage information for the "uninstall" cmd.

This commit attempts to fix this by making Help a real Command, and
making the handing of it explicit.
"rustpkg prefer" should print the help for '"prefer" not "uninstall"
auto merge of #11470 : eminence/rust/rustpkg_help_test, r=alexcrichton

In general, you can run "rustpkg help <cmd>" to see some specific usage information for <cmd>.  However, this was handled in a very ad-hoc and buggy manner.  For example, running "rustpkg help prefer" would actually show you the usage information for the "uninstall" cmd.  Or "rustpkg help test" would show you the usage information for the "build" command.  Or "rustpkg help list" would just run the "list" command (and not show you anything usage information)

This commit attempts to fix this by making a new HelpCmd (and handling it explicitly)