Alias some Frames method that deal with Anchors into Anchors itself
Support dragging by proxy, and some cleanup of dragging

Beyond the addition of ProxyDraggable, I needed to fix Frames.Draggable
so that it works as expected. I also went ahead and updated the style to
be a bit more appropriate.

One big change is that I made frames anchor using their origins, rather
than their center. This allows frames to anchor to other frames that may
not have a size.
Don't pass the old value in OOP.Property

commit() implicitly allows access to the old value, by letting the user
retrieve it using a standard getter. Beyond that, I just wasn't using old
in practice, so it made sense to bury it a bit further.
minor error reporting
InstanceOf shouldn't fail on nil or non-class objects
Class destructors are now integrated into each object

Class destructors used to exist outside each instance, and adding class
destructors would cause them to be implicitly added to all existing
instances of that class - even ones that were created previously. This
seems a bit dangerous (just as adding a class constructor would cause it
to be run on living objects would be dangerous)

Now, class destructors are converted to class constructors. This keeps
the ordering consistent, and ensures that destructors are not run on
instances that weren't expecting them.

This also lets me invoke destructors repeatedly until the destructor list
is empty. This is a trick that ensures that destructors added during
destruction will be run. It also ensures that destructor removal will not
cause destructors to be skipped.