Build a caption-layout feature that fits text into a fixed-width poster without overflowing its lines.
Requirements
Return an array of lines, each at most columns characters. Columns must be an integer from 1 to 60; otherwise throw an Error.
This renderer uses ASCII text in a fixed-width font: columns measures character cells, not proportional-font pixels.
Collapse spaces and tabs within a paragraph. Preserve explicit newlines, including blank lines. Normalize Windows line endings.
Place whole words where they fit. Split a word longer than columns into full-width chunks; its final chunk may share a line with the next word. Empty input returns [].