Add typed ReactLink to ReactProps

Adds a PropType that checks for proper use of the ReactLink API and optionally validates the type of value passed in via the link. Basically, it's a wrapper around PropTypes.shape that hides the implementation of ReactLink.
Remove function wrappers in DOMSelection

There is no point in doing the feature detection on every call, unless there is an IE bug where it is not sure about which support for selection it has (totally plausible).
Fixed a bug in expectRenderedChildAt

React components have _mountIndex, that looks like it is their order in DOM.
If you swap 2 elements in DOM, their order in children array isn't changed, but their _mountIndex is
unbreak server-side/web worker

We're now trying to access document directly at require time. Wrapping in a function prevented that before. But we can simply check what environment we're in first.
fix log spew from ReactDOMInput test

The prop validation threw a warning that either `onChange` or `readOnly` is required. Set the `onChange` where needed.
fix log spew from ReactDOMTextarea test

Similar to previous but for textarea. If `value` is set, we have to also set
`onChange` to avoid warnings.
better error message for React EventPlugin order check

Ran into this while inadvertently requiring multiple React versions in a separate project (`require('react');` vs `require('React');`
fix warnings in ReactComponentLifeCycle test

Don't use inputs to avoid warnings in tests
fix warnings in cloneWithProps test

Don't test refs in this case, already testing warning above
Update videos.md
Remove whitespace_transformer package

This was a one-time use thing, let's get rid of it. If we ever need to
push an update, we'll do it from the 0.9-stable branch.
Split DefaultDOMPropertyConfig

This makes it a little easier to add SVG properties. It also makes use of that injection that we claim is easy to use and will likely start playing a bigger part soon.

Closes #1009
Upgrade jstransform to 4.0

Also enables the object-concise-method transform for --harmony

closes #1438
Don't let new keys on `style` from `transferPropsTo` override old ones

Previous behavior: `transferPropsTo(<div style={{color: 'red'}} />)` would get `color` overriden if we transfer in a `style={{color: 'blue'}}`. This is inconsistent with how other props are transfered.

This simply reverses the order of arguments.

closes #1435
Merge pull request #1441 from zpao/update-jstransform

Upgrade jstransform to 4.0
Current set of must-have SVG attributes / tag

The current set of SVG attributes / tag I felt like I needed
them absolutely for my React/SVG editor app.
Add tspan to JSX transform
Fix IE11 collapsed ranges in ReactDOMSelection

In IE10/11, it is apparently possible to have a Selection or Range object that has the following properties:

  - `anchorNode` === `focusNode` (Selection) or `startContainer` === `endContainer` (Range)
  - `anchorOffset` === `focusOffset` (Selection) or `startOffset` === `endOffset` (Range)
  - `isCollapsed` === `false` (Selection) or `collapsed` === `false` (Range)

As defined in http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html, this doesn't really make sense. Since the nodes and offsets are the same, the "collapsed" value should be `true`.

Moreover, when calling `selection.toString()` in this case, it appears that the entire text contents of `body` -- including `<script>` tag contents -- are considered within the selection. I thought maybe the selected nodes were missing from the DOM or something, but no, they're there.

Sidestep all of this in `ReactDOMSelection` by calculating the `collapsed` property manually and setting the selection length directly to zero if it is actually collapsed.

Side note: I think that for selection restoration on contenteditables, we shouldn't try to do this offset calculation. We should just use the structure provided natively (nodes and offsets) since we can restore using that structure as well.
Remove unnecessary tests from insertChildAt and inline it instead
Test innerText/textContent on document.documentElement instead