Don't get selection if no active element

Fixes #694.

Previously, it could be that there was an active element that was removed in between mousedown and mouseup.
Further cleanup of isEventSupported
Fix WheelEvent incorrectly inverting sign of deltaY
Don't mutate passed-in props, take 2
Use proper window object for iframe in enter/leave

Fixes #788.
Fix potential memory leak when unmounting

Fixes #781.
Spy on purgeID instead of unmountIDFromEnvironment
Merge pull request #640 from spicyj/immutable-props-2

Don't mutate passed-in props, take 2
Merge pull request #786 from spicyj/gh-781

Fix potential memory leak when unmounting
Add --harmony option to jsx.
Merge pull request #771 from spicyj/gh-694

Don't get selection if no active element
Merge pull request #778 from syranide/flipwheel

Fix WheelEvent incorrectly flipping sign of deltaY
Merge pull request #780 from syranide/newhasevent

Further cleanup of isEventSupported
Merge pull request #803 from spicyj/gh-788

Use proper window object for iframe in enter/leave
Add PropTypes.component to demand a single React component.
Remove CallbackRegistry