Mbst 8930 refactor radioplayer

First version of this, it's still WIP. I'm looking for thoughts on how to reduce the complexity, particularly around the InteractionManager, as this class is doing most of the complicated interactions between queue and file records.
this smells of Feature Envy: http://sourcemaking.com/refactoring/feature-envy
Should type, uploadService, service, date be encapsulated in another object? Or should the task be responsible for the creation of a FileHistory instance?