Replace string concatenation with (v)streams.

Overloading += to concatenate strings never quite worked.  The C++ way is to
use a stream, then + becomes << and all makes more sense.