runtime: Separate out parsing helpers to own file

This moves non-Scheme specific parsing helpers to its own
ParserHelpers.h file and add Doxygen. This is purely to reduce the size
of DatumReader.cpp
runtime: Reader support for newlines

Due to "\n" not being considered whitespace multi-line s-expressions
weren't parsed properly
compiler: Support nested block comments

This is required by R7RS. It also adds additional tests for datum
comments.
runtime: Support for reading comments

This adds support for line, datum and block quotes to the reader.
runtime: Support for symbol shorthand

- Add reader support for the various symbol shorthand forms

- Fix ExternalFormDatumWriter to properly quote symbols containing
  shorthand characters
runtime: Support for reading characters

This should give DatumReader feature parity with the Scala SchemeParser
runtime: Include offsets in ReadErrorException

This should make it easier to debug problems parsing large inputs.
runtime: Support for error object categories

This will be used to implement (read-error?) and (file-error?).
Currently there is only one error category of "Default" that is used as
a catch all for the current error types. This functionality is also not
exposed through _lliby_signal_error - all errors produced by codegen are
in the Default category.

This could be extended in the future to allow for something similar to
R6RS's condition types if it's deemed useful.

This also moved the line/column number formatting logic in to
_lliby_signal_error. There is no point exposing that functionality to
C++ stdlib code as it has no source location information. This was done
to keep the signature for signalError() under control.
compiler: Remove accidentally added file