add wrapper obj for decision info. augment info with timing.
add more utility functions
make grammar region indexes tokens not char indexes.  Get start/stop for blocks if subrules.
add toString so profiler can print out later
have to copy original token index over as well to transformed token.
any block within transformed left-recursive rule gets "grammar region" map to entire original rule.
handle RULE region now too.
handle * entry loops
+ AST node was pointing at ()+ start node not loopback, but we use loopback as real decision in code gen not start. affected using ATN state in profiler to retrieve grammar region.
tracking max lookahead event now per decision.
Templates LL1PlusBlock and LL1StarBlock were not used. removed. added test for LL1OptionalBlock.
tests failing do to change in plus loop atn state. add semantic context printer in Grammar.
create map from pred index to pred ast.
add rule index to prec preds for better tracing info. can get back original alt, for example.
try with just tokenIndex not charIndex etc...
Remove ability to disable ParserATNSimulator's use of a DFA (to be implemented separately)
Parser.setProfile now returns void
Move ParserATNSimulator._stopIndex to ProfilingATNSimulator
Restore original signature for evalSemanticContext
Remove unnecessary field PrecedencePredicate.ruleIndex