Fix Analyzer; Refactor .slice and .sliceText

Moved .accTokens() and .accText() from Parser.js
into .slice() and .sliceText() in ParserBase class.

.slice will behave as usual, unless a column offset
> 0 is specified. In this case, leading white space
on each line (WS tokens) will be trimmed by number
of space characters equal to the column offset, or
the entire lexeme length, whichever one is shorter.

(Side effect: The lexical tokens will line-leading
white space characters.)

.sliceText has the same behavior as slice, but
returns a concatenated string from these tokens
instead.

Added type checking for numbers, improved for string.

Fixed incorrect behavior with pruneLonePara(). List-like
data structures should no longer contain a paragraph's
content twice.

Shortened Lexical Token and ASTNode type names. Less
keyboard banging, amongst other function shortenings,
ones that don't have to be long.

Fixed the analyzer from deleting a PRE block with nothing
but line breaks.