Adding foundation for func support.

Added func tests, support for return, and framework ready for parsing
and generating arbitrary function definitions.
Add support for 'length' builtin
Functions as first-class types, and fold builtin tested