Coalesce adjacent strings into one text node

Depends on #741.

Should make #480 a little less painless. This brings us a lot closer to pretending we're in a world where text components don't exist at all; I think this is a lot nicer overall.

With this, `<div>{['A', ' ', 'B']}</div>` turns into `<div>A B</div>` instead of `<div><span>A</span><span> </span><span>B</span></div>`.

The only "weird" thing that I can see here is that `<div>x{flag && <a />}</div>` will toggle between rendering to `<div>x</div>` and `<div><span>x</span><a /></div>`.