Return default message status if group is invisible
DatabaseComponent's two getMessageStatus() methods rely on an implicit assumption that the group is visible to the contact. One of the methods throws a DbStateException if this assumption is false; the other method returns an empty result set. This results in messages failing to load or being invisible, respectively, in the conversation view.
This branch removes the assumption by returning a default status for each message if the group is invisible. The getMessageStatus() methods, along with getMessageIds(), are tightened up to return only delivered messages, like the other query methods used by clients.
Closes #1217 (closed)