Lambda expressions and full java-8 function lifting

Basic implementation and docs.  Not really thoroughly tested, but simple examples work well enough.


Additionally, we can now specify types.  This is the last feature before we do some refactoring on compiler phases, testing infrastructure, all the work needed to have this be more of a real project and less of a fun hobby project.