End of track cleanup

This pull request reintroduces the changes originally done in pull request #231 to properly separate end-of-track and end-of-stream handling.

These changes breaks some existing functionality in Mopidy, and was thus reverted from the develop branch. The following issues must be resolved before this can be merged again:

- #316 EOT changes makes "next" deadlock Mopidy
- #320 EOT changes breaks random playback