Adds basic support for metadata.  Improves branching constructs somewhat (though they still need a lot more work).  Begins testing functional constructs in examples/functions.hpp