[React Children] Step One: Refactor flattenChildren

Refactoring `flattenChildren` so that the traversal code is reusable
for other purposes.
[React Children] Step Two:  Use `traverseChildren` to perform `mapChildren`

Use the new `traverseChildren` utility to perform `mapChildren`.
The goal is to get as close to the bavior of the semantics of
`Array.prototype.map`, but also in a way that understands deeply nested arrays
and objects.
[React Children] Step Three: New test case for `traverseChildren`.

If we're going to build utilities off of this, we should have good test
coverage.
Controlled <select> and <option> Components

This implements a `<select>` component that supports `value` and `defaultValue`. It also changes `<option>` to warn when the `selected` prop is supplied.
Fix Markup Rendering in IE

This fixes known browser bugs with rendering markup using `innerHTML` in IE ([[http://support.microsoft.com/kb/276228 | here is an example of one]]).

This is a subset of what `HTML` (and jQuery) does, and we should eventually consider pulling it out into a separate module to reduce code duplication. For now, this is the minimal set of changes needed to unbreak React in production.

We can afford to use a subset of what `HTML` does because we have the luxury of knowing that the markup is generated sanely with proper closing tags, etc.
add missing argument to invariant in ReactDOMSelect
Fix rootElementsByReactRootID bookkeeping in ReactMount.js.

It's not always possible to update `rootElementsByReactRootID` when the
contents of the container are re-rendered; for instance, when we call
`dangerouslyReplaceNodeWithMarkup` or `dangerouslySetInnerHTML`. Since
this bookkeeping is just trying to warn about potentially problematic
manipulations of the root element, and we can be relatively sure that a
new element with the same ID is logically the same element, this diff
avoids warning in such cases.
Use populist for building jasmine test harness package.

We're using populist for building the bundle of test modules and their
dependencies, so it seems worthwhile for consistency to do the same for
the test harness.
Merge pull request #194 from benjamn/build-jasmine-bundle-with-populist

Use populist for building jasmine test harness bundle
Upgrade Commoner and Populist to force upgrade to graceful-fs v2.0.0.

A silent upgrade from graceful-fs v1.2.2 to v1.2.3 (a dependency for both
Commoner and Populist) broke the build process, even though tests were
still passing. The 2.0.0 version fixes whatever was broken, though I won't
pretend to know exactly what the root cause was.
Merge pull request #195 from benjamn/force-upgrade-graceful-fs

Upgrade Commoner and Populist to force upgrade to graceful-fs v2.0.0
Fix tests to silence some warnings due to autobinding
Merge pull request #196 from zpao/fix-test-warnings

Fix tests to silence some warnings due to autobinding
Safely silence console messages by spying on console.{warn,error}.

This eliminates *all* spurious console messages in `grunt test`, thanks to
a great suggestion from @petehunt.