Add connectivity check tasks, refactor mailbox properties
This branch refactors some mailbox code to make it easier to convert between MailboxUpdates (exchanged with contacts) and MailboxProperties (used by the MailboxApi).
The branch also refactors the MailboxApiCaller interface to make it a bit more legible, replacing Supplier<Boolean>
with the more meaningfully named ApiCall interface.
Finally, the branch adds a ConnectivityChecker interface, with implementations for checking the reachability of our own mailbox and a contact's mailbox. These will be used by the respective mailbox clients to wait for the mailbox to become reachable before making other API calls. The connectivity checker is the main part of #2229 (closed).