classtree: add instantiate aspect

the instantiate aspect is similar to the instantiate_upon_traversal
aspect, but differs in two key aspects:
1. classes set in the classtree supersede the original dictionary
2. instead of just classes a node in the classtree can also consist of a
tuple of (class, *parameters), where parameters are attribute names.
Their values on the instance are used to instantiate the child nodes.