Should there be a `formatToParts` method which returns an iterable of formatted `TextElements` and `Placeables`? Should the iterable by flat, or nested?