Android: Mark Unread, Better API Error Handling

Finally re-submitting #328.  Took me a bit there to deal with the really nasty merge caused by the whole android project directory moving out from under my changes, which git did not like very much at all.

This set of changes:

* implements mark-unread and resolves #198, our most popular issue
* refactors API response/error handling so we have a much easier way of processing and displaying error messages received from the backend