Warn when mutating props on a ReactElement

PRs #2531 and #2532 should probably be merged first. This isn't perfect, and in particular doesn't catch mutations in conjunction with setProps/replaceProps, but it should catch most mutations of the props objects.

Test Plan: jest. Also used ballmer-peak in IE8 to verify that it still works.
You're suggesting keeping checkAndWarnForMutatedProps as I have it here but getting rid of all the defineProperty stuff?