Use StringFormatter rather than extending String

This change introduces `Cri::StringFormatter`, which contains the logic for formatting strings (wrapping and indenting, and formatting as command/title/option).

The old `String` extensions are still kept for backwards compatibility.