Multi-line comments (MLCs) can span multiple lines, and are formatted
with word-wrapping. This isn't too expensive now, but languages
with immutable strings aren't ideal for this sort of thing. Before
we introduce fancier formatting, we want to ensure that we're not
going to adversely affect rendering performance.
The cache entry for a given offset is tied to the MLC object and the
Formatter; if either are changed, the cached string list will not be
used.
String operands used to be simple -- each line had 62 characters
plus two hard-coded non-ASCII delimiters -- but now we're mixing
character and hex data, so we can't use simple math to tell where
the lines will break. We want to render them and keep the result
around until some dependency changes, e.g. different delimiters
or a change to the pseudo-op table.
Also, cleaned up LineListGen a little. It had some methods that
were declared static because they were expected to be shared, but
that never happened.
Also, fixed a bug in GatherEntityCounts where multi-line items were
being scanned multiple times.