style(Task): remove unnecessary parantheses from tests
refactor(Task): format code

Add missing '@Override' annotations to implementations of interface
methods
Remove unnecessary 'this' qualifiers
Whitespace changes
refactor(Task): change error message variable names
refactor(Task): whitespace change
feat(Task): add error message for null string description
fix(Task): use defensive copying for deadline
fix(Task): use defensive copying for tags
fix(Task): initialise tags if setTags is called with null
feat(Task): add error message for null string tag
refactor(Task): whitespace change
feat(Task): add method to check if tag is valid
refactor(Task): extract tag validation to method
refactor(Task): remove unused variable
refactor(Task): rename magic8TaskToStringArray method to toStringArray
refactor(Task): inline DateFormat variable
fix(Task): fix wrong assignment
fix(Task): fix setDeadline NPE
fix(Task): fix getDeadline NPE
fix(Task): fix equals NPE caused by null deadline