Refactor Command class to include datePairs

Now for add and update, Command will contain a datePairs ArrayList
instead. For search, viewRange will be used.
Added non-logic validation for Parser

Non-logic issues such as missing variables and parameters are now
validated and return with an error message to the user. However, logic
errors such as invalid task id etc are still not caught.
Refactored output formatting and UPDATE logic

Made UPDATE work with the new command changes and refactored output
formatting into more readable and cleaner code.