fix OclDoubler example
add basic template nodes
lookup callables by (name, cfunctype) instead of FunctionDecl. This means we have to explicitly pass the type signature of the entry point, but we can have entries points in templates (from which we can't easily compute the type signature).