Implement facade class for Database

https://github.com/cs2103aug2014-f11-3j/main/issues/96

Why is this change necessary?
Separation of Database's API from its internal parts, i.e. internal
methods and variables allows for neater code and lets callers of Database,
e.g. Logic, identify the callable APIs more easily.

How does it address the issue?
The new facade class contains only the APIs of Database, which calls the
internal machinery of Database, i.e. DatabaseHandler, to carry out the
necessary operations.

What side effects does this change have?
No change in constructors' names. The facade class is still called
Database, instead the internal machinery is now moved to another class
called DatabaseHandler. Test cases for Database may have to be updated,
e.g. the TaskLogger class is now only accessible through DatabaseHandler
class, not Database class. Hence tests that need to use the TaskLogger
class, e.g. for making a dummy task log, may need to have their code
changed.
Merge branch 'master' of https://github.com/cs2103aug2014-f11-3j/main

Conflicts:
	GoogleCalAuthenticationToken
	log