Don't mutate passed-in props

Depends on #575; fixes #570.  Now we'll be in trouble if someone tries to share objects between calls to getDefaultProps but that was already true of getInitialState and I haven't heard any complaints there.

This is the same number of allocations as before; we're just copying props in the other direction. (In any case, the copy happens only on mount and there are a couple dozen costlier things we're doing already at that time.)
Use an iframe to create a testDocument…
instead of `createHTMLDocument` since it isn't fully support by the browsers we care about.

fixes #606
fixes #454
remove warning comment about `createHTMLDocument`
IE support
jsx & JSDOM support
Merge pull request #576 from spicyj/immutable-props

Don't mutate passed-in props
docs tips parent-child communication
Merge pull request #602 from chenglou/tips-bind

docs tips pass arguments to callbacks
Remove unused event plugin registrationNamesKeys
Tweaks to README

Most significant change is updating the leading copy to match #440.
Merge pull request #625 from spicyj/patch-3

Tweaks to README
Add missing license header
Fix frontpage example to retain selection
Merge pull request #626 from spicyj/getUnboundedScrollPosition-license

Add missing license header
Merge pull request #609 from subtleGradient/subtlegradient/fixes-ios-crasher

fixes iOS crasher
Fix lint warnings
[docs] Fix download links to addons builds
Fix blog pagination

I missed this in the Jekyll upgrade.
Merge pull request #624 from spicyj/remove-registrationNamesKeys

Remove unused event plugin registrationNamesKeys
Add video at the bottom of the front page