Login v2 API

Introducing the v2 Login API, backed by the original Admin.Login logic. Builds on proposed pull request #367.
I remember now.  If it is an agent login, there is no UserInfo, hence the *UserInfo originally.

Also, we now want explicit serialisation directives on all stuff over the api.