Emit eventsCommitted signals after modifying an EventModel
Fix SingleEventModel query building to match test behavior
[libcommhistory] Remove static library build

Tests now use the shared library, and the static library is removed
entirely. To enable tests, CommHistory::Adaptor is now an exported
class, but shouldn't be normally used and shouldn't pose an ABI problem.
Fixup ConversationModel sorting
Fixup DatabaseIO::getEvent failure cases
Fixup getGroups and addGroup tweaks
Fix issues uncovered by ut_eventmodel
Fix behavior of group startTime and endTime

The startTime and endTime of a group are actually the startTime and
endTime of its last event (which is confusing, but regardless). Query
them directly rather than storing them with the group.

The "last event" in a group is actually the event with the most recent
startTime, falling back to descending ID order. Fix the groups query to
obey those rules.

Also fixed the last event ID for groups with no events. It should be -1.
Invoke MmsContentDeleter when an event is deleted

This is not done when groups are deleted, because the old implementation
was done badly. MMS content is currently non-existant anyway, and the
implementation will be revisited later.
Fixup behavior of GroupManager addGroups and getGroups
[libcommhistory] Use "<hidden>" instead of empty UID for private numbers

The use of an empty remoteUid string to represent a private number is
very error-prone. Use "<hidden>" instead, which UI code can choose to
replace with a translated string, and which doesn't require special
cases in other code.
[libcommhistory] Fix unit tests for sqlite backend

ModelWatcher is refactored to handle synchronously-emitted signals
correctly, and be a bit more precise about the number of signals.

A variety of other issues in unit tests that were either incorrect or
have changed with the SQLite backend are also fixed.