create Root
fun createRoot(allElements: Collection<Element>, knownArgumentRestrictions: List<TypeRestriction>, memento: Memento): LookupTree<Element, Result>
Create a LookupTree, using the provided collection of Elements, and the list of initial argument types.
Return
A LookupTree, potentially lazy, suitable for dispatching.