Android: Offline Beta 2

This patch implements delayed/offline replay of mark-read type actions and fixes many bugs found in the first beta, including #537, #564, #566, and more.  It also reduces memory and battery use.

This is by no means 100% bug-free, but I think it is a good candidate for B2, as it fixes some of the more noisome bugs and actually lets you read offline without losing track of what was read.  The latter will need lots of testing, and the sooner the better.

I would suggest we push to the Beta channel after about a day of testing from @samuelclay and @manderson23 if no servere bugs are found.
The javadoc still suggests that the default is no timeout for both. I agree with using nicer HTTP libraries though. HttpURLConnection is pretty clunky.