Fix segfault in TokenParser::parseWord

If the parseWord method is called for a second time, the word pointer
may already be nullified in the first call. We need to check if the
pointer is still non-null before dereferencing it, even if the word
parser is guaranteed to return a non-null pointer.
WIP: PipelineParser
WIP: PipelineParser
WIP: PipelineParserTest: constructor
WIP: PipelineParserTest: failing token parser
WIP: PipelineParserTest: non-keyword token, single command
WIP: PipelineParserTest: keyword token, single command
WIP: PipelineParserTest: negated single command
WIP: PipelineParserTest: negated three commands
WIP: PipelineParserTest: reset
WIP: PipelineParserTest: failure in first command
WIP: PipelineParserTest: failure in third command
WIP: PipelineParser: add const to parser creator methods