Mark private messages read properly
Depends on !386.
This branch uses the same approach as forums to mark messages read, i.e. each message is marked read when it becomes visible, rather than marking all messages read in a batch when the activity finishes. This fixes two problems: messages not being marked read when isFinishing() is false, for example when leaving the activity via the home button, and a race condition between updating and loading the group count when leaving the activity, resulting in a stale unread message count in the contact list.
Closes#196.
See merge request !388
Return to group after not inviting new members
This MR also closes the keyboard when returning from the message fragment.
Closes#735
See merge request !389
Fixed asynchronous Activity leaks in Fragments
If a Fragment has been detached its `getActivity()` method will return null, providing numerous crash possibilities within the app.
My approach to fixing this is to make Fragments use their own `runOnUiThreadUnlessDestroyed` method, which also checks if the Fragment has been detached before running the Runnable
Closes#714
See merge request !387
Let only the creator invite new members to private groups
A little bug I noticed when reviewing the implementation of the invitation protocol.
See merge request !383
Implement UX for viewing the membership of a private group
This MR is the second and last MR to address #678. The first part is in !377.

Closes#678
See merge request !364
Implement UX for leaving a group
This MR also includes the creator's part of the UX for dissolving a group since it is almost the same.

Closes#671
See merge request !367
Remove forum content type and change bodies to string
Also removes support for anonymous forum posts.
This MR depends on !360.
Closes#698, #681
See merge request !370
Refactor contact lists, their adapters and items
This was supposed to be a preparation for #678 to make the contacts lists cleaner and easier to re-use for different use-cases. Turns out #678 can't use this work, but it is probably nice to have anyway.
During this work, support for multiple identities has been removed from the various contact lists.
See merge request !363