Implement singleton pattern for database

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

Why is this change necessary?
- Only one instance of database should be created.
- Instance of database should have a global access point, e.g. google
  calendar synchroniser may want to access database's tasks.

What side effects does this change have?
- Callers of database's constructor will now have to use the getInstance
  method to construct database.
- Logically, the getInstance method should be first called by logic
  component.
- Global access to the single instance of database is now provided by the
  getInstance method.
Merge branch 'master' of https://github.com/cs2103aug2014-f11-3j/main

Conflicts:
	log
Merge branch 'master' of https://github.com/cs2103aug2014-f11-3j/main
Correct wrong singleton tests for database

https://github.com/cs2103aug2014-f11-3j/main/tree/master/src/taskbuddy/database

Why is this change necessary?
- Previously, unit tests for database were calling upon Database's
  getInstance method for initialising Database objects. This caused many
  tests to fail because these tests require a new Database instance each
  time.

How does it address the issue?
- The incorrect unit tests were re-written such that they now call upon
  Database's constructor, instead of the getInstance method.
- New tests targetting only the singleton behaviour were also written.

What side effects does this change have?
- To enable tests to call Database's constructor, Database's constructor
  had to be changed from private to default. However, since no classes
  outside the database package can access the default constructor (and I
  am careful not to unnecessarily call Database's constructor), this is
  good enough.