Ensure a pooled class releases back into the pool an instance of that class

Also added tests for PooledClass.

Noticed that some places use `ReactReconcileTransaction.release(transaction)`, when `transaction` might be of another class, say `ReactServerRenderingTransaction` (still a Github PR). This catches that.
fix comment
Build react-tools package on build, upload to builds site
Remove React from react-tools package

All of this is provided by the react package now, so there's no point in having
it available in multiple places. We *may* go back on that in the future for
shipping test utils, but for the time being, this is better for all.
Merge pull request #1040 from zpao/react-tools-revamp

react-tools revamp