Base the network availability only on a failed search request, not on a ping to google.com

This way we don't have multipe points of failure, i.e google.com doesn't acept pings anymore, or it's blocked in specifiec countries
Use a separate Sqlite cache to cache the YouTube and SoundCloud requests, so we can discard them when shutting down the application