WIP: Fixed somethings from PR comments and started second pass of semantic checking.
Almost done with second pass

need to add return type checking and arg list order checking for default valuse being last
Second pass of functions working, more tests needed

Multiple return types not yet implemented and return type checking.
Added more tests