Implement exceptions for message passing

Why is this change necessary?
Using a single Bundle class to pass messages for all components
increases coupling and decreases cohesion. On the other hand, it is
awkward and unscalable to implement a class for every kind of message
passed amongst components.

How does it address the issue?
Throwing exceptions holding error messages do away with the need for a
Bundle class. It also makes code neater because the exceptions can be
propogated upwards towards a single catching point and their error
messages can be displayed to the user.

What side effects does this change have?
Callers of Database class, e.g. Logic and GoogleCalendarManager may have
to catch checked exceptions if they don't want to catch the superclass
Exception. These checked exceptions will be specified in the method
signatures of the API.
Merge branch 'master' of https://github.com/cs2103aug2014-f11-3j/main

Conflicts:
	src/taskbuddy/database/Database.java