FUNCTION and CLOSURE revamp, take 2' (#1973 and #2002)

This is pull request #109 updated to add a critical fix to maintain backwards compatibility in the build process. The only additional change over #109 is an adaptation to `make-make.r` to keep backwards compatible down to at least R3 A111.