Change return type of Parser::parse to pointer

The old return type (Maybe<Result> &) requires a maybe object to exist
somewhere in the parser. It makes less flexible design of a parser that
converts or modifies the result of another parser.
Reimplement CharFilter for new parser type definition
Make FailingParser a child class of Parser

The NormalParser class template will be removed.
Make Converter a child class of Parser

The NormalParser class template will be removed.
Reimplement CharParser for new parser type definition
Reimplement Repeat for new parser type definition
Reimplement CommentParser for new parser type definition
Reimplement BlankAndCommentParser for new parser type definition
Reimplement NewlineParser for new parser type definition
Reimplement BlankCommentNewlineParser for new parser type definition
Reimplement RawStringParser for new parser type definition
Reimplement WordComponentParser for new parser type definition
Reimplement WordParser for new parser type definition
Reimplement AssignedWordParser for new parser type definition
Reimplement AssignmentParser for new parser type definition
Reimplement WordParserStub for new parser type definition
Reimplement AssignmentParserStub for new parser type definition
Reimplement TokenParser for new parser type definition
Reimplement SimpleCommandParser for new parser type definition
Reimplement CommandParser for new parser type definition