Synchronize hashmap.values() calls correctly

values() does not return a new, independent list, hence we need to
synchronize the entire block.
Remove commented cruft
Correctly remove podcasts from all lists on subscription
Sort the podcast list by title
Remove context parameter from settings singletons

These are unnecessary since we started using the global application
context throughout the application. The motivation behind this was to
fix a null pointer exception which occurred during a long-lasting
refresh operation in which apparently some parts of the app were killed.
Remove unnecessary if blocks

If these variables are ever null, we have bigger problems.
Format, sort and clean Podcast variables
Remove LogoDownloaded podcast members

This variable is completely useless and can be removed.
Do not filter episodes on episode deletion
Correctly handle podcast logo drawables

Instead of creating a dummy logo if no logo file has been downloaded
yet, and then forgetting all about updating to the real logo later on,
correctly use the real logo as soon as it is available.
Throw an exception on unexpected sort fields
Optimize EpisodeListFragment.refresh()

Instead of doing an add() for each episode (which triggers all kind of
stuff in adapter), build an intermediate list and all all episodes at
once.
Optimize the episode comparators

Previously, each compare created two Long objects, with devastating
effects on performance.
Print more information on invalid logo paths
Remove bogus log
Prevent null pointer exception when searching episodes
Prevent excessive garbage collection by caching fromHtml
Remove unused variable
Catch JSON parse exceptions in PullFeedAsyncTask
Actually show the error toast on invalid refresh