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

This is just 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 it running from down to at least R3 A111.