Simplify updating threads from parsed info.

In case we get multiple threads for some reason, this'll handle it now.
Fix duplicate/missing threads.

This was especially noticeable on the bookmarked threads screen.

If a thread gets moved and updated at the same time, we temporarily have a
mismatch between the table view cell's index path and the corresponding fetched
results controller object's index path. (This happens because we're within a
UITableView update block–so cell index paths won't change until the update block
ends–but the fetched results controller uses the new index paths immediately.)

The fix is to configure the cell at the "old" index path with the object at the
"new" index path. Oddly, the template implementation for
NSFetchedResultsControllerDelegate provided by Apple does not take this issue
into account.

The clue here was noticing that the indexPath and newIndexPath parameters didn't
always match when the change type was "update".