Implement TracklistProvider to allow backends change tracklist workflow

In this pull request, I have implemented the posibility to either add or substitute tracklist's business logic to allow special services have different workflows. It is taking as base the modifications in #491.