Simplify composite lifecycle state

We now forbid calling setState or forceUpdate if any component's render function is higher in the stack, not just the component you're trying to update. (We do this already now for React.renderComponent and React.unmountComponentAtNode.)

This also has the advantage that we can now remove CompositeLifeCycle.RECEIVING_STATE, making _compositeLifeCycleState easier to reason about (not to mention that RECEIVING_STATE was a confusing name) and making it possible to remove a try/finally from the render path which might help with perf.
Also list <form> in error message as possible culprit
getModifierState should always return a boolean
Merge pull request #1865 from syranide/modistatefalse

getModifierState should always return a boolean
Remove empty TextNode left behind by IE8 setInnerHTML workaround
Merge pull request #1560 from spicyj/simplify-lifecycle

Simplify composite lifecycle state
Merge pull request #1903 from syranide/ie8nmlb

Remove empty TextNode left behind by IE8 setInnerHTML workaround
HAS_SIDE_EFFECTS properties must compare as property type
Merge pull request #1770 from eins78/master

Also list <form> in error message as possible culprit
Merge pull request #1511 from syranide/strsidefx

HAS_SIDE_EFFECTS should compare by type-casting
[docs] increase base font-weight

Closes #1926