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.
I'm not sure if it's worth the perf and complexity hit on every property in the entire app. Especially since this pattern is often used to add properties rather than to mutate existing props.

Temporarily enabling Object.freeze (and strict mode) is a pretty good way to help debugging once you hit this issue.

We can probably remove the `.props` mutation check too.