Move mountComponentIntoNode and setProps out of ReactComponent

This is part of moving more logic out of the base classes.

setProps, replaceProps etc. are not accessible from anything other than
ReactClass so we can safely move it to ReactCompositeComponent.

mountComponentIntoNode is tightly coupled to ReactMount. It's part of the
outer abstraction, the mount point, not the individual component.
Move _pendingX into ReactCompositeComponent

Since setProps can no longer be called on anything but composites, we can
move this complexity into ReactCompositeComponent.
Ensure that all internal instances have consistent properties

Use preventExtensions so that we can't add expando properties to internal
instances. This ensures that the hidden class is kept more consistent.
Move mountDepth to ReactCompositeComponent

This is only used to sort ReactUpdates, and since only composite component
can trigger an update, we only need it there.