Login v2 API

Introducing the v2 Login API, backed by the original Admin.Login logic. Builds on proposed pull request #367.
The original thought was that we would use FindMethod as the way to do versioned requests, rather than having to hybridize the Value code.
Looking at the code for "ValueOfVersion" I don't see anywhere that it is actually doing anything but just forcing the Version to the one that was passed in. At least, that is what I see from this one:
+func (r *anonRoot) FindMethod(rootName string, version int, methodName string) (rpcreflect.MethodCaller, error) {
+ if api, ok := r.adminApis[version]; ok {
+ return rpcreflect.ValueOfVersion(reflect.ValueOf(api), version).FindMethod(rootName, version, methodName)
+ }

That certainly looks like *any* version that is requested will just be "ok, you have Login at that version".