Autobind parameter for declaring components

Adds a special `events` role when creating components.  This is a shorthand for binding functions to events, with the added benefit that they'll be automatically unbound when the component is removed or destroyed.  You use it like this:

```
Crafty.c("MyComponent", {
	events: {
		EnterFrame: function(){
			// this function is bound to EnterFrame
		},
		Moved: function(){
			// this function is bound to the "Moved" event
		},
		// We can give a reference to a function instead!
		Change: "_changeFunction"
	},
	_changeFunction: function(){
	 	// This function is bound to "Change" by its name, but can still be called normally as a method on the component
	}
});

```
Merge pull request #834 from starwed/auto-bind-2

Autobind parameter for declaring components