Login v2 API

Introducing the v2 Login API, backed by the original Admin.Login logic. Builds on proposed pull request #367.
Perhaps its not a good idea. This is from a recent merge, in which such an error is now returned in the default case. This is even tested for.

Now that I think about it, I think it is not a good idea. During a maintenance mode the appropriate api root should handle the error appropriately. If its unexpected, we should just pass the error through. I'll change this.