MAL: Refactor to hide Anime/Manga lists.

Exposes for_each_anime() / for_each_manga(). Since we are using mutex
to protect the containers, we can't just expose a iterators since they
can be invalidated at any time (without exposing the mutex publically
as well).

MALItemListView gets a more complicated updated API for refreshing,
requiring a block_updates()/clear()/append_item(). This is a target
for future refactoring, but I want to find a way that doesn't require
a functor that has a functor argument.
MainWindow: Display error and success messages
MAL: Only expose async methods