Respect event.stopPropagation() when nested

When nesting top-level components (e.g., calling React.renderComponent within
componentDidMount), events bubble to the parent component.

This change ensures that when `event.stopPropagation()` is called in an event
handler of the inner top-level component, event handlers of outer top-level
components are not called. Closes #1691.

As of the current W3C DOM4 draft, there is no standardised way to determine if
`stopPropagation()` has been called on an event. This change sets the
deprecated `cancelBubble` property existing in most current browsers and
should continue to work if the property is removed in the future.