Update react.d.ts

* Removes `React.ComponentElement<P>` in favor of `React.Element<P>`.
* Removes `React.Factory<P>` in favor of `React.ComponentFactory<P>`.
* Change callback return types to `any` instead of `void` per best practices.
* Update `React.Children` types and add tests to `react-tests.ts`.
* Add `React.ClassSet` interface for use with `addons.classSet`.
* Fix DOMAttributes `key` type (`any; // number | string`).

cc @pspeter3
I like the clarity