Basic shallow rendering support

WIP to fix #2393.

Now redone on top of the new ReactCompositeComponent/ReactClass separation (#2445). Still only handles initial rendering not updating, but this is a simpler implementation that should be easier to add the missing parts to.

Sorry about closing the old PR (#2459), I'll just force-push next time I do a new version of a PR.

As a bonus, per @sebmarkbage's recommendation, this defines the validated flag to be a non-enumerable property, and avoids setting owner on the shallowly-rendered component, so we can now do a straight equality test on the expected and actual results and avoid helper functions like `areElementsEquivalent`.
Refs need to be attached before this fires, which means that my proposed APIs for attachRef probably isn't the best API. Maybe it's better to provide the refs ahead of time so that you can fire this immediately.