cmd: support named commands

We should be able to register commands without calling Info. Sometimes,
Info may do some dirty stuff (like in login, where we call the remote
target to figure out the authentication scheme - see issue #953). For
now, login will be the only named command.

As far as I can tell, we used to that in the past and I've removed this
code, because I couldn't figure out why we had an optional Name method
in commands and a name inside Info.
cmd: make login a named command

This way, we won't call login.Info() when registering the command, so we
can finally have offline commands :)

Fixes #953.