Move ClassMethods to the end so that InstanceMethods are defined when it gets there
Change from a broadcast model to `instance_on`, where classes can intentionally subscribe to events in their instances
Add tests to for instance listener