Shortened generated "data-reactid"

Previously generated IDs looked like:

`.r[0].[0].{x}[0]{y}.[17]`

That has now been shortened to:

`.0.0.$x:0:$y.g`

The older ID is 60% longer by comparison (above), and this new ID is still surprisingly readable in my opinion. It's also worth mentioning that I use `base-36` numerical indices instead to save further space, we could technically use `base-62` but I don't it would be worth it. It is technically possible to avoid `$` for keys but it would affect some ID functions that would have to check for both for an additional separator over the default `. SEPARATOR`, and I believe that keys are longer and less common anyway, so it would not be worth trade-off.

PS. The React Chrome extension doesn't even need to be updated for this PR.

#### Performance

I did a torture test of it, mounting and unmounting (the same) randomly generated tree of divs, I could measure between 3-9% performance increase depending on browser, shortening `data-reactid` also helped measurably. Interestingly enough, using `reactid` resulted in significantly poorer performance on at least IE8.

#### Size

While testing on the React implementation of TodoMVC, with a few items, the entire body innerHTML is 7545bytes and the IDs are a total of 3550bytes of it, a whole 47% of it is IDs and I'm not even including `data-reactid`. Using the shorter IDs, that same page is 6440bytes and the keys are 2406bytes. That is a difference of 1105bytes, so with the old IDs the HTML was 17% larger and the IDs themselves were 48% larger and that is with TodoMVC's large item keys.

#### Future improvements

There are even more efficient ways of cutting down the "ID bloat", but this is a very straight-forward implementation that should suffice for now, without being a head-ache. Apart from the refactoring/improvement below, it only modifies `traverseAllChildren` and no other React internals.

I also experimented quickly with a proof-of-concept implementation that stores the full IDs in memory instead, with only minimal reference ID generated for each node, definitely doable. Server-rendering and the chrome extension would have to be modified accordingly though.

#### Technical details

I should mention that `traverseAllChildren` now generate the IDs it returns with prefixed `.`, technically this is because the order of the keys is otherwise ruined. Practically, this means that the use of the separator is not as spread out as it was before. And this has no practical difference other than for tests on IDs, which are already affected.

```
   raw     gz Compared to master @ 8ca62bd022b535386da08b8d2ba59b951d3cfc2a
     =      = build/JSXTransformer.js
     =      = build/react-test.js
  +250    +43 build/react-with-addons.js
   +84     +7 build/react-with-addons.min.js
  +250    +44 build/react.js
   +84     +9 build/react.min.js
```