Detangle EOT and EOS.

This commit tries to detangle EOS from EOT which we have incorrectly
intermingled. EOS events should only be happening at the end of the playlist
when we are about to stop. EOT handling has been removed / broken in this
change, and will need to be re-added with proper tests.
Add change track to playback providers.

This method is intended to make implementing EOT handling much more streamlined
by adding a way to easily just change the URI and any other state without
messing with gstreamer pipe states

Naming of this is a bit unfortunate as it is not the same as the
core.playback's concept of change_track. At least not yet
Use source's factory name to determine type.

Checking the URI inside the new-source handler turned out to tickle some issue
that gave us deadlocks. Getting the source and checking which factory created
it is much safer.
Setup about to finish handling for proper EOT support.

With this change we ask the core.playback system to set the next tracks uri and
otherwise update state as needed. With this change we should be able to support
streaming oggs and gapless playback to mention a few of items this fixes.

On the down side, this change breaks test_end_of_track_skips_to_next_track_on_failure
as there is no clean way to handle this with the async nature of this EOT
handling.
audio: Log buffering messages
audio: Add appsrc need-data and enough-data callbacks
audio: Make appsrc buffer between 0.5 and 1 MB of data
spotify: Only push audio data when GStreamer wants more
Merge branch 'feature/spotify-to-use-gst-time' into feature/limit-spotify-data-pushing

Conflicts:
	mopidy/audio/actor.py
	mopidy/backends/spotify/playback.py
Merge branch 'develop' into feature/limit-spotify-data-pushing
audio: Add MB constant to make code more readable
spotify: Hook need-data and enough-data callbacks onto appsrc
spotify: Reduce callback logging
Fix use of threading.Event for Python 2.6 and clear connected state.

threading.Event's wait method returns None on python pre 2.7, which means all
searches would fail. This also corrects that fact that we weren't clearing the
connected threading event on disconnects. I did not add any tests for this at
this time as I just want to get the fix out.
Release v0.11.1
settings: Update settings validator to support empty iterables.
stream backend: Add StreamBackend, fixes #151

Adds a basic streaming backend simply handles streaming audio and nothing else.
I.e. no metadata beyond the URI we where given. #270 still needs to be solved
for actual metadata to make sense in this backend.
core: Update BaseLibraryProvider to not require refresh, search or find_exact.

These methods may now return None, and the core code has been updated to filter
out missing SearchResults.
core: Update tests with cases for filtering out None results.
audio: Move supported URI checking to mopidy.audio.utils

In order to avoid gstreamer imports leaking into more of our code I'm moving
this to a new utils class in audio.