Generalise RootedReference
a8a4054
It now becomes RootedReference<'root> and includes an associated type for the return type of its 'r' method. This removes the need for OptionalRootedReference.