Properly parse for situations when there is no additional operand for an additional argument
Merge branch 'master' into parser/Victor
Added CommandType Help
Removed static variables `_argsMap` and `_cmdMap` (along with related methods) from `AdditionalArgumentImpl` and `CommandImpl` respectively.
Added them to `ParserImpl` instead.
Changed constructor for AdditionalArgumentImpl
Transferred all validation and initialising from AdditionalArgument and Command to ParserImpl
Merge branch 'master' into parser/Victor
Slight refactoring
Stopped using exception for control flow.
Invalid Command will now be returned instead of an exception.
Moved unit tests to ParserImplTest.java
removed file CommandImplTest.java
Made parser instance class private, refactored showWelcomeMessage()
Activated exit command

System.exit(0);
Added comments, adjusted some methods for reusability

Comments for controller constructor with stub parameter.
Deleted showWelcomeMessage() method, but adjusted processString() to be reusable for system generated and user keyed commands.
Refactored terminate(), added comments

Shows exit message and exits system.
Added a method to  parser to parse string to additional argument
Allowed for "delete all" command
Added undo command

#61
Merge remote-tracking branch 'origin/controller/sharon' into logic/wenhao
Merge remote-tracking branch 'origin/parser/Victor' into logic/wenhao
Fix Issue #61 Issue #59