backend: Allow seeking past fill-level

When download buffering. This also improves download
buffering support by:
- Always doing the buffering query on the pipeline so that all
  elements can participate.
- Handling the GstCacheDownloadComplete message to know when
  download completed.
- Improving where we set the fill position try to find the fill
  level past our current playback position.

Based on patch by Bastien Nocera <hadess@hadess.net>

https://bugzilla.gnome.org/show_bug.cgi?id=635637