Add comment to StringWithFormatting docstring...

I came back to this after a while and couldn't remember what I was doing!
Made StringWithFormatting addition handle concatenation of strings better...

Now when adding strings onto the end of a StringWithFormatting that
already ends in a string (rather than a Format), we will combine the two.
The output is nicely cleaner, but the it makes the implementation messy, so
I'm not entirely sure what I think of it.
Added some resiliancy to wrapping code...

mostly centred around what happens with empty input.
Made elements get a default Terminal...

So that Text could insert normal at the end of the text content.

Also made crop_or_expand more flexible about mashing default objects into the
list it's manipulating - now if they'll fit, we'll insert them. (Yes, should
have done separate commits, but hey)
Made normal Format that comes back from calling a Format string consistent...

with what comes out of Terminal.