Extract Track.from_file into a service object

This will make it easier to encapsulate logic for importing a track without polluting the model. This is a requirement for doing things like custom identification for ASOT episodes.