Add StringParser class

StringParser is basically a clone of RawStringParser. StringParser just
returns a string so that the result can be used for many purposes.
Reimplement RawStringParser using StringParser

This commit is just a refactoring. No test cases added or modified.
Add AssignmentParserImpl template class
Add AssignmentParser class
Add CommentSkipper class
Add CommandParser abstract class
Remove mSourceLocation from Command

It seems Command should have SourceBuffer::ConstIterator as a pointer to
the corresponding source location. For now we remove SourceLocation from
Command; we will add ConstIterator (or something else) again in the
future.
Move WordParserStub to WordParserTestHelper.hh

WordParserStub is going to be used in more than one test.
WordComponentStub is also moved.
Refactor AssignmentParserImplTest

We now check the value of parsed words, making the tests more readable.

Part of the checkAssignmentResult function is moved to the new function
checkAssignment.
Add test case to AssignmentParserImplTest
Use StringParser to parse variable name in AssignmentParser

This commit is just a refactoring. No test cases added or modified.
Make WordParserStub more correct

Empty word should no word components, rather than an empty component.
WIP: Add SimpleCommandParser class