oslc now gives a compile error when trying to use a function as a variable,
previously it would output non working bytecode.
Improvement to oslc function type checking -- allow more nuanced matching
of return types.  First we check for identical return types, then we test
allowing non-identical spatial triples to match, then finally we allow
any return type to match.