Merging in new version of the kuru compiler

Doing this as PR to keep the history a little less muddled.

This is effectively a do-over the Kuru compiler in a cleaner way.  At the very least, it at least implements more of the language now.