Changed an attribute's validator function to be called with the context of the object containing the attribute.
Changed component to automatically wrap all methods passed to component.extend.
The wrapped methods are wrapped by a try/catch block that reports an error when an exception is thrown.
It is best to only put entry point methods like event handlers on the component object itself (to prevent the same error from being reported by multiple methods.)
Added a bind method to base.
This method allows you to deeply bind to attribute value changes.
For example: obj.bind('ship.captain.name', onShipCaptainNameChanged).
This will invoke the callback when captain.name changes, captain changes, or ship changes.
When obj is destroyed it cleans its bindings up automatically.