Escape component keys used in reactid

Fix for https://github.com/facebook/react/issues/647

Apply a simple escaping mechanism to prevent any conflicts with `reactid`, allows the user to use any string as `key`. The escaping character is chosen pretty much at random, my only idea being that it should be as uncommon as possible while still being humanly readable. I chose *not* to escape `{}[]` because they shouldn't actually cause any conflicts (the reactid will just look weird).

It is possible to significantly reduce it by simply replacing `.` with any other character, however it then opens up the possibility for a user to maliciously craft conflicting keys.

It's possible that `getKey` is a hot-spot and that the key should be cached to improve performance (although the simplicity means it exceedingly fast as-is).

I also updated a test that relied on `window.YOUVEBEENH4X0RED` to be untouched, but since the `.` is escaped now that cannot happen, so I changed it to update `(window.)status` instead.

```
   raw     gz Compared to last run
     =      = build/JSXTransformer.js
     =      = build/isFeatureSupported.js
     =      = build/react-test.js
  +377   +132 build/react-with-addons.js
   +97    +52 build/react-with-addons.min.js
  +377   +136 build/react.js
   +97    +60 build/react.min.js
```

It's also possible to inline the escape-function to bring it down to (not provided in this PR):

```
   raw     gz Compared to last run
     =      = build/JSXTransformer.js
     =      = build/isFeatureSupported.js
     =      = build/react-test.js
  +192    +80 build/react-with-addons.js
   +86    +43 build/react-with-addons.min.js
  +192    +81 build/react.js
   +86    +47 build/react.min.js
```