Ruby method evaluation requires the system
Remove evaluation's direct dependence on corelib
Move host messaging into the corelib

This involves injecting more dependencies into the evaluation engine.
Remove messaging namespace

The two types of messages were drastically different from each
other. In addition, upcoming changes to allow defining methods from
Ruby require Ruby methods to have access to the system.
Store Ruby-defined methods directly on the object
Create a record for holding variables in a stack
Support defining a method with arguments
The last statement of a method is the value of the method
Parse class definitions
Introduce classes and move methods there
Define methods in the class, not the instance

This also means that `self` needs a class, so we
introduce a blank Object class.
Add the ability to define a new class and a method on it
Allow reopening a class and defining more methods
Make STDOUT an instance of RubyIO