Login v2 API

Introducing the v2 Login API, backed by the original Admin.Login logic. Builds on proposed pull request #367.
It appears that api.State.Close is responsible for some tomb cleanup and handshaking. Perhaps the original author felt there was little value in holding on to these resources if the target address can't even be parsed.

FWIW this is the same API client behavior as before (formerly in api.State.Login), just relocated for reuse among the v0 and v1 login methods.