Rewrote test case for Task class for readability

Why is this change necessary?
The variable names in the TaskTest JUnit test case is unnecessarily long
and confusing.

How does it address the issue?
Using a single 'description' variable to test the constructor and
setDescription method makes it simpler.

What side effects does this change have?
No side effects; all tests still pass.
Implement deadline functionality of Tasks

Issue #63 - https://github.com/cs2103aug2014-f11-3j/main/issues/63

Why is this change necessary?
Users often need to key in deadlines about their tasks (not just the
task description). A task deadline can be expressed as a date and time.
Therefore, it is useful to associate dates and times with tasks.

How does it address the issue?
Having Date and Time fields in the Task object allows for:
- Easy access of date and time of the task deadline through getters
- Easy manipulation and storage of date and time of task deadline
  through setters
- Enforces the idea that each task can only have one deadline, i.e. one
  Date field and one Time field.

What side effects does this change have?
Everything:
- UserInterface can now parse and add deadlines (in terms of date and
  time) to Logic.
- Logic can manipulate task deadlines and pass them to Database for
  storage.
- Storage can now have a good structure to store deadlines within
  (literally) tasks.
- Most importantly, GoogleCalendarManager can add tasks to Google
  Calendar with the relevant deadlines.

Task class implementation taken to be complete for now.
Close #63