Simplify Mouse::in_rect?
ALWAYS close the mrb with mrb_close.

What we should do though, is check in init whether mrb was properly
opened, and then terminate on fail.
Sound: throw an exception in the constructor if the object cannot be built.

Zombie objects that are dead, bt still alive are bad.
Call State::render in C++.

Allows us to separate event/update code from rendering code.
attr_ functions can be used with super too

There's no need to define a function manually if you want to later
ammend it and call super. attr_ functions are also slightly faster
(at least in ruby, maybe not mruby -- yet!)

http://stackoverflow.com/questions/13494098/ruby-attr-accessor-vs-getter-setter-benchmark-why-is-accessor-faster
pretty sure the on_ callbacks should be in Container, not Rect.
merging
merge patch: engine.cxx
merge patch: core/*