Rename UserDefinedModule to RubyModule

This will be a useful type for builtin modules as well. I'm not sure that
the earlier approach of having a struct per class was a great approach and
it seems like having a single one for modules would be effective.
Add shell of a Comparable module

Realized as I was writing this that Methods should probably receive self
as its first parameter. Whoops.
Methods have a reference to self