Fixed Str parser so it handles apostrophes inside words.
Fixed Str parser so it handles apostrophes inside words.

Previously the --smart option would trigger exponential slowdown
in text heavy with intraword apostrophes.  This fixes the problem.

Str is now a bunch of NormalChars followed by a list of StrChunks.
A StrChunk is either a bunch of NormalChars, an underscore followed
by alphanumeric, or (in smart mode) an apostrophe.

sftrabbit/MarkdownParse,sftrabbit/MarkdownParse,sftrabbit/MarkdownParse