Update generic etcd to enable namespace scoped resources

Modified the KeyFunc and KeyRoot functions to support accessing the context object so we can use this registry for namespace scoped resources.
Naming bikeshed; RootFunc? KeyRootFunc? ListFunc?