Graphical component update

Graphical components no longer extend Transform and instead retain their
own internal translation, rotation, and bounding data.  Bounds may
either be a 2D vector (z elements are dropped) or a Polygon described by
an array of X/Y elements of length 4 or greater which must be divisible
by 2.

This commit fixes a bug in the events library and allows a Runnable to
be spawned from a method by passing it as the `proc` argument, thus
emulating Object#send().