Fix potential NPE in AndroidExecutorImpl
Always wait for the startup latch to ensure the background thread's Handler is initialised before using it.
Closes#665.
See merge request !319
Clean HTML from RSS feeds with Jsoup and Show Link Warning
This adds HTML cleaning with the Jsoup library based on a whitelist. The resulting HTML is then used to create a `Spannable` in Android. This spannable is traversed and URLs are replaced by a custom dialog fragment that shows the following warning.

Closes#569
See merge request !311
Refactor ValidationManager and fix some bugs
The validation manager uses a pattern of throwing an exception from within a transaction, then trying to ensure that the transaction gets committed anyway by setting it complete in a finally block. This is a bad idea - if the intentional exception isn't thrown but a later method throws an unintentional exception, the changes up to that point will be committed instead of rolled back.
I reworked the control flow to remove this pattern, and in the process realised that the validation manager was doing a lot of work to provide objects to attach to MessageStateChangedEvents, which are only used by tests these days. So I fixed that and a couple of other issues.
The VALID state is no longer needed and has been removed.
Closes#619
See merge request !313
Resolve Outstanding Blog Issues
This MR has several commits which fix individual small issues. The biggest commit is a refactoring of the `BlogActivity`, so its `ViewPager` can be used also for the Blog feed.
Closes#637
See merge request !309
Show Blog Posts always in the same design
This also adds comments to the blog post detail screen that were previously missing.
It re-uses the existing `BlogPostViewHolder` and its `bind()` methods effectively reducing the amount of code necessary.
Closes#636
See merge request !307
Add one introduction test for modified response message
This is only the first part of #627, but I am putting it up for review already, since the second part will be very similar and issues found here will likely apply to both.
See merge request !306
Fetch RSS feeds via Tor
This patch replaces jsocks with our own minimal SOCKS 5 implementation, which is compatible with Android's OpenSSL hacks (see discussion on #599 for the horrifying details). This allows us to use OkHttp over Tor to fetch RSS feeds.
It turns out that SOCKS 5 without authentication is a really simple protocol: https://tools.ietf.org/html/rfc1928Closes#599.
See merge request !308
UI for reblogging and blog comments
This MR wraps all blog posts inside a `CardView` and adds a reblog button to blog posts. When this button is pressed, a new activity opens that shows the blog post again and allows the user to reblog it into their own blog. An optional comment can be added.
Also a new compound view `AuthorView` is introduced to display authors and their trust level in a consistent way.
The `BlogController` has been refactored, so the `FeedController` can share most code through an abstract base class.

Closes#496, #437
See merge request !300
Scroll down Adding Contact screen
Normally, you would introduce a new layout only for small screens, but in this case it is easier and has less maintenance overhead to just scroll down the screen, so the button is always visible after loading.
While I was at it, I also replaced `getLocalAuthors()` by the new `getLocalAuthor()`.
Closes#616
See merge request !294