Set textarea value when changing content

At http://jsfiddle.net/spicyj/W4QLq/, typing into the textbox would cause
clicking the button to do nothing; now it should work.
Don't set value if it'll be a noop
Don't let textarea value change via textContent

Turns out my tests before weren't particularly useful because
receiveProps doesn't end up running componentDidUpdate since the
transaction never finishes. Now they use replaceProps instead (and I
verified that commenting out the "rootNode.value = ..." line makes the
tests fail, which wasn't true before).
Adds optional callback to `setState`

This commit adds an optional callback as a second argument to
`setState`, to be called after `setState` runs.

We never guarantee synchronous execution of `setState`, and as per
@phunt, we don't want to make that guarantee because we may eventually
batch calls to `setState`.  @jwalke agrees with him.
Updated docs and check for truthiness

Change api docs to reflect presence of the new argument.  In addition,
callback was change to require only a "truthy" value.
markdown syntax

Small problem with markdown syntax in syntax-highlighted block.
Add callbacks to all public-facing state/props methods

All public facing {set,replace,force}{props,state} methods now support
callbacks.
Merge remote-tracking branch 'origin/master' into textarea-update-value
Don't update value or textContent unnecessarily

_updateDOMChildren was already updating textContent so we don't need to
do it in _updateDOMProperties. Additionally, don't update .value if
it'll be a noop because it has side-effects (like moving the cursor) in
some browsers (like IE 9).

Refactor tests to be a bit more robust and a bit cleaner too.
Remove textContent tests; they break in phantomjs
Refactor of ChangeEventPlugin

some refactoring and also handle if `blur` doesn't fire on the form
input in IE8 (by always cleaning up on focus). per discussions with
@balpert
Change ReactID.ATTR_NAME to "data-reactid"

This final change is what we've all been waiting for.

Note that it no longer makes sense to use `document.getElementById` in
`getNode`, because that only ever worked with "id" attributes.
Merge pull request #128 from mathieumg/master

Double quotes for strings in JSON data
Recommend Node v0.10.0 due to https://github.com/isaacs/npm/issues/2907
Merge pull request #132 from petehunt/engines

Recommend Node v0.10.0 due to https://github.com/isaacs/npm/issues/2907
Community Roundup #3
Merge pull request #126 from vjeux/community_3

Community Roundup #3
Add @jsx common parser issues in the docs

Update getting-started.md
Bump version to 0.4.0a

This should have happened a while ago, but better late than never.
Fix `findComponentRoot` w/ Unidentified Nodes

The current `ReactInstanceHandles` has a bug where `findComponentRoot` barfs if it comes across a node that was not identified by React (via `ReactID`). This fixes that.

This was always a bug, but it became more apparent once we switched to `data-reactid` because arbitrary `document.createElement`'d nodes are much more likely to have an `id` than they are to have a `data-reactid`.