(Bug 45111) Change squashing to trimming of whitespace and control chars

The final version of this removes most of the squashing of white space
and control chars and only trims leading and trailing white space and
replaces sequences of the old control chars (the lower block) with spaces.

This means that form feed, tab, carriage return, new line, etc, are replaced
with a single white space because they are control chars. The chars zero width
joiner and zero width non-joiner will be passed on unchanged as they are in the
control char formatting block.

Change-Id: Icc9e48d33b9f5c4ae0a3fd8000c4c54d2883b66d