Fix StringComponentSpec addition/StringWithFormatting construction...

to assess correctly whether placholders can be combined. Also, use duck-typing
to recurse nested content more flexibly in StringWithFormatting instances. Also
also update the quick_brown_fox example and tests to exercise the situation
more flexibly.
Move Format- and StylePlaceholderFactory to a more logical location...

in formatting.py
Move text-wrapping logic to its own module...

named similarly to Python's standard textwrap to imply that we're attempting to
re-implement :-)