[AddressBook] Extracted contacts db logic from main worker script

This patch basically extracts the previous `getContactsDatabase` and `storeContact` functions from the worker script and move their logic in a new `CollectedContacts` object constructor living in `addressbook/collected.js`.

The logic related to updating the current list of connected users and their presence remains in the main worker script and is handled within an appropriate callback in order to decouple addressbook logic from the presence one.

Of course, this is only a very first step towards the higher order goal which is to build a subworker-compatible address book provider.

**Ready for review. Suggested reviewer: @Standard8**