add support for ssh agents
refactor handling of auth methods

Now mcmd looks for an ssh agent by default and falls back to asking for a password if no agent is found and no private key is specified.