RFC: Remove autobinding from ReactCompositeComponent

Autobinding causes unnecessary allocations and is counterintuitive because objects in JavaScript rarely have bound methods. 99% of the time, autobinding is useful only because it causes event handlers to be run with the correct context. Let's instead simply run event listeners in the context of the _owner_ component that added them, avoiding the need to autobind.

This new strategy of managing event callback contexts differs from the current event behavior in one practical way -- when callbacks are passed from a parent component down:

```js
var Feed = React.createClass({
  render: function() {
    return this.props.comments.map(function(comment) {
      return <Comment
        key={comment.id}
        comment={comment}
        onDelete={this.onCommentDelete} ... />;
    }, this);
  },
  onCommentDelete: function() { ... }
});
var Comment = React.createClass({
  render: function() {
    return <div>
      {this.props.comment.text}
      <a href="#" onClick={this.props.onDelete}>Delete</a>
    </div>;
  }
});
```

This change causes onDelete to be run with `this` equal to the clicked Comment component rather than the Feed component. At a first glance, this might seem undesirable. However, note that this is in fact quite useful: Feed.onCommentDelete can read from `this.props.key` or `this.props.comment` to identify which comment was clicked. Instead of needing to do a bind in the render method, we can reuse the same function without making extra allocations.

Note that in most cases, no code changes are required. In this pull request, the changes to ReactTransitionableChild and ReactDOM{Input,Select,Textarea} are representative of the few differences.