Don't wrap values with ReactTextComponent in traverseAllChildren (cloneWithProps)

Fix for #1962

Moves wrapping with `ReactTextComponent` to `flattenChildren` instead, where it belongs.

Also very minor code fix-up. Also worth mentioning that the flattening done by `cloneWIthProps` messes with the reactids, so while the idea is to avoid unnecessary allocations I assume, it does affect outcome (i.e, you can't conditionally use `cloneWithProps` without all components remounting).
```JS
      } else if (type === 'string' || type === 'number' ||
                 children.type && children.type.prototype &&
                 children.type.prototype.mountComponentIntoNode) {
```

Is a lot more logical perhaps, otherwise a bit more dramatic (but not as fast, not that it should be measurable):

```JS
      } else {
        var isComponent = (
          children.type && children.type.prototype &&
          children.type.prototype.mountComponentIntoNode
        );
        if (type === 'string' || type === 'number' || isComponent) {
          ..
        } else if (type === 'object') {
          ..
```

Any preference? (I've updated according to the first code as it's *a lot* better at least)