fixed const-ness of src buffer content

The constructors of SoruceBuffer asked for mutable utf8char pointers. This is
now fixed to const pointers.
added NullTerminatedIterator

Very convenient iterator that walks over a range of memory, with the additional
benefit of dereferencing to 0 if it iterated past the end of its range. Allows
for very compact code since one may assume null-termination.
src and token buffer need not be null-term

Removed the restriction that the contents of SourceBuffer and TokenBuffer
objects need be null-terminated. The NullTerminatedIterator helps with this.
renamed test, fixed lexer test case

Renamed vhdl/test/parser.cpp to vhdl/test/lexer.cpp. Also fixed two test cases
in vhdl/CMakeLists.txt that called the test-vhdl-lexer program with invalid
file paths.
cleanup of LexerNovum and Token code

Added \todo doxygen instructions to LexerNovum.cpp. Also cleaned up things
there and started using the new NullTerminatedIterator. Cleaned up the Token
implementation.