s/parser/lexer/g

The code contained in the files formerly known as parser.h and parser.c
processes a string of ASCII characters and generates tokens. There will
be a parsing phase added later which will take a string of tokens from
the parser, create a syntax tree, and perform a deeper semantic analysis
of the instructions to be executed.
Fix include guard for lexer.h

s/PARSER_H/LEXER_H/g
Use fixed size for token cstring data

The mess of allocating a large enough char array to store data read in
is avoided by defining a max size for the array (in the header limits.h
which will define implementation details that can be customized) that is
allocated up front and reused. Since a single token_t will typically
reused for a lexing job, the cstring does not need to be continuously
reallocated.
Append null terminators to returned strings

The functions isIdentifier and isString may return cstrings via the
value variable. The strings are now properly null-terminated, and the
code paths that return variable length strings will additionally assert
that the string to return does not exceed the limits defined in
limits.h, so that tokens being created don't have their char arrays
overflown.