- Refactored the bytecode interpreter stuff. I've opted to use
  functors rather than dynamically generating the functions used in the
  code.

- Added a skeleton Runtime object that can be used to maintain program
  state. Currently it doesn't quite work but is a placeholder for future
  work.

- Created a "BytecodeReader" class that essentially can be feed a
  code section and it will yield the interpreted bytecode instructions.
  This is pretty similar to what we had previously.

- Fixed the demo and the javaclass file to work with the modified
  bytecode reader.