Modularize parser component

This build made some refactoring on the structure of the project so that Parser Component has a clearer API now. The other components can communicate with Parser Component by the ParserService Interface. The clients of Parser Component do not need to bother how to manipulate different parts of the parser to finish a task now, what the other components need to do is providing the input to appropriate port of the ParserService instance, and then the desired output will be returned. The clients who use Parser Service can put new requirements on Parser Component by adding methods in ParserService Interface. 
@owolabileg  @pdaian  @yzhang90 Please review.
 
I agree. A configurable implementation sounds attractive. Maybe in the future we can do some further refactoring on that aspect. At this stage, only one implementation of ParserService exists, but this interface is used everywhere possible so that the clients of the parser will not be bound to specific implementations. Maybe a setter method can be added to enable the clients to switch to other desired implementations.

B.T.W, I do not understand why that the file mode of the bin srcipts  changed. Can I fix it by adding execution privilege and committing again?