Add StringFormatter and formatAndJoin to stringutil
The StringFormatter functor wraps formatString so that we can write
one-liners that take a container, format its objects to strings, and
join them with a separator into one string for e.g. logging output.
Re-implemented joinString in terms of formatAndJoin, by using an
IdentitfyFormatter, thus eliminating duplication of implementation.
Added some tests for joinString also.
Applied new functionality to reporting GPU status information.
Change-Id: I424543a1ca4e214c438cc39f104f087e7e70030a