Upgrade phantomjs to 1.9.1-4

This fixes the install and permissions issues we've been seeing with
other 1.9.1-x versions.
Make .bind(null, ...) work on autobound methods

Fixes #266.
Extract out core ReactEmitter functionality.

Other environments can make use of some of the logic in ReactEventEmitter.
Refactor ReactComponent to have no dependency on the DOM.

React is more than just a DOM app library, it is a component
abstraction library. This enforces that.
Merge pull request #268 from spicyj/bind-null

Make .bind(null, ...) work on autobound methods
fix test case for rendering text node number 0
Move utils out of React that aren't being used

Many of React's util functions are non-redundant with Facebook's core
libraries, so move them out of React into a central location (out of
this repo).

These files were not getting used by any part of React core, so didn't
actually belong here anyway.
Sync modules to vendor/core

We haven't done this recently. Nothing has changed significantly, though
this does remove some files we weren't using.
Fix behavior of ReactDOMSelect

Closes #250.

Test Plan:
With multiple and not, verified: With defaultValue, the correct option is picked initially, user changes change the selection, and changes to defaultValue have no effect. With value, the correct option is picked initially, user changes do nothing, and changes to value change the selection.

Also ran the tests.
Merge pull request #251 from spicyj/select-value

Fix behavior of ReactDOMSelect with `defaultValue`
Make getChecked, getValue, handleChange private

Test Plan: grunt test, enter text in ballmer-peak example without any JS errors.
Merge pull request #275 from spicyj/input-private

Make getChecked, getValue, handleChange private
typo fix
Allow DOM Nodes in ImmutableObject

Currently, `ImmutableObject` will stack overflow while it tries to recurse and deep freeze all the properties of a DOM node.
Merge pull request #277 from stoyan/patch-1

typo fix
Added PyReact blog post.
Improve error behavior of Danger.dangerouslyRenderMarkup.

HTML comment nodes are now interspersed in the original markup list so
that we can tell which chunks of markup rendered as more or less than one
node, and give a more helpful error message in that case.

Regardless of how many nodes were rendered, we only take the first one. If
zero nodes were rendered, then `resultList` will contain `null` at the
corresponding position.

If we decide to revisit the idea of using document fragments, it will be
very easy to handle the `!== 1` case by returning a document fragment.