react-core npm module

This was challenging for three reasons:

  * Accessing internals is hard
  * `__DEV__`
  * You can't `require()` the browserified code via UMD (not a showstopper but annoying)

This solves the first problem by just stealing @zpao's https://github.com/facebook/react/pull/442. Now you can `require('React/lib/EventPluginRegistry')` and inject your own event plugins. I don't think we should document this until we shore up our API. However, I think this is enough to publish `TapEventPlugin` (perhaps as a separate npm module)

The second is solved by using `envify` which will do a syntax transform to substitute the `NODE_ENV` environment variable (see http://www.hacksparrow.com/running-express-js-in-production-mode.html). So this will transparently work and I tested that it stripped invariants and `__DEV__` branches. Additionally I required the transform in `package.json` so they can just transparently use this package and not worry about `__DEV__` at all!

The third is solved by introducing muffinizing! Hell yeah! I just replaced every instance of the word `require` in the browserified code with `muffin`. This is actually pretty much the only way this will work since many packaging systems look for calls to a function named `require()`. cc @epriestley

I suggest we follow this up by deprecating react-addons, moving each addon to its own npm package and having a "react-with-addons" npm package that just depends on the other stuff and can be browserified with `wzrd.in`.

## Test plan

  * Standard test plans (grunt, examples etc)
  * Look at filesizes, they seem OK
  * Manually examine transformed sources, they have the right `"production" === process.env.NODE_ENV`
  * Manually examine browserified sources (.min.js and .js) with minification OFF, they have the right `"production" === "a string"` in there.
  * Disable simple header and minfication for `.min.js`, `diff -u react.js react.min.js` shows no changes in the files (this is the goal)
  * Create test app using `renderComponentToString()`, `npm install ~/Projects/react/build/react-core/`, then `require('React')` and `require('React/lib/React')`, both work in Node
  * With same test app, `cp ~/Projects/react/build/react.js ./react-browserified.js`, using `require('./react-browserified.js')` still works
  * Try the last two previous steps with browserify: `browserify testapp.js > bundle.js`, browserified bundle works in Node.
  * Manually inspect browserified bundle, see that `process` is shimmed
  * Try the last two previous steps with production mode browserify **and** minfication: `NODE_ENV=production browserify testapp.js | uglifyjs -cm > bundle.min.js`. File still runs and `invariant()` messages are nowhere to be found. File size is 33kb after gzip (good).