Track maintains its progress as it plays

Track.prototype.timeRemaining() returns the number of seconds
left, based on how much data has been read out of the file's total
size.

Pipes data through a transform stream which updates the Track's
_progress property. Unfortunately audio is about 2s behind the
file read stream, so timeRemaining() will appear to end early.