Server rendering: rendering of entire document using React.

Summary: Allows rendering of React into the "document" as opposed to into a
particular node. To recap some basics:

document: One level above the <html> tag - like the browser.
document.documentElement: <body>

To support full-page server side rendering, we need to be able to render
*everything* including the HTML/BODY tags. This allows that.
adding better test - moving execution env module.
Merge pull request #289 from jordwalke/ServerRenderingFixes3

Server rendering: rendering of entire document using React.
Benchmarking tool for React application performance

ReactAppPerf wraps core methods and logs info from them; there's no real
UI at this point
Explicit and Implicit Keys Need Separate Namespaces

There are certain cases where you can end up with a collision with an implicit
key (array index) if your explicit key prop is a number. They should use
different namespaces. Therefore I wrap explicit keys in curlies and implicit
array indices in brackets.

I added a simple test case, but another case came up on the mailing list. Where
undefined entries in an array actually results in an entry and therefore an
implicit key.
Remove all uses of ExecutionEnvironment.global

Closes #271.

All three of these files are DOM-specific so it should be fine to use window. (ReactEventTopLevelCallback isn't obviously DOM-specific but it calls getEventTarget which is so I think we're fine here.)

Test Plan:
grunt test, tried events in a real browser and they seemed to work still.