Separate React Composite and Class

ReactClass is now composed by ReactCompositeComponent rather than
inherit from it.

The state transition functions currently use ReactInstanceMap to map an
instance back to an internal representation.

I updated some tests to use public APIs. Other unit tests still reach into
internals but now we can find them using ReactInstanceMap.

I will do more cleanup in follow ups. The purpose of this diff is to
preserve semantics and most of the existing code.

This effectively enables support for ES6 classes. All you would need to
expose is ReactClassMixin.
It's incorrect that Maps are faster. They're O(1) lookup on average but large Maps will be slower than a direct property access.

More importantly, this has a behavior difference if you're using multiple React instances which would probably break some of our tests.

The Map is nice because it is impossible to reach into internals without going through the Map and it works on non-extensible class instances. However, I think we might instead move to some injection into the class instance so that the base class can be completely decoupled from the React core without a middle man.

Not sure yet. This is just incremental.