use Loader when conversation is updated instead of requery

Our adapter for conversations and conversation lists was still doing requeries on content changes which happen on the UI thread. This change takes advantage of the Loader paradigm and its built-in content observation/updating to take that into an AsyncTaskLoader.

Unfortunately you only get the cursor content observation benefits in the CursorLoader class if you're querying from a Content Provider. Since we don't do that for conversations, I needed to write our own AsyncTaskLoader helper class for how we fetch cursors.

While I haven't reproduced the major lag others have experienced with large conversations, I suspect this has a decent amount to do with it. Should help #1941.