Smoke testing refactored compiler

- Fixed an infinite loop bug in the Lexer when the input
  stream ended with a TEXT token.

- Fixed Lexer.fn.next() from dipping into negative indices.

- Fixed Lexer.fn.peekUntil() to correct report tokens at a
  given index.

- Added .toJSON() back to the AST for easier debugging.

- Remove BBM.offset for header nodes; Not anticipating
  that they'll be needed.

- Fixed link elements not storing valid URL values.

- Fixed no-op bug in parseInline when it isn't invoked from
  BBM.parse(); Added Lexer.fn.size() to help the fix.