StatusBarFooter: enable dependency injection of a Clock
StatusBarFooter: enable dependency injection of a Clock

When an AddressBookChangeEvent occurs, the sync status's timestamp is
updated using 'new Date()'.

However, because we do not know the arrival time of the event during
testing, we are unable to verify the accuracy of the time stamp in the
updated sync status.

To gain testability, StatusBarFooter needs to support dependency
injection. And to support dependency injection, we can't directly
call new Date().

Let's add a Clock, and get the time stamp from it, so we can inject
a fixed Clock during testing.

VeryLazyBoy/addressbook-level4,CS2103R-Eugene-Peh/addressbook-level4,damithc/addressbook-level4,VeryLazyBoy/addressbook-level4,damithc/addressbook-level4,CS2103R-Eugene-Peh/addressbook-level4,se-edu/addressbook-level3,CS2103R-Eugene-Peh/addressbook-level4,VeryLazyBoy/addressbook-level4,damithc/addressbook-level4