Moving selectPlaylist to PlaylistSelector in playlist-selector.js

This PR moves selectPlaylist() from videojs-hls.js to its own class in playlist-selector.js.
By doing so videojs-hls.js gets smaller and less cluttered. More importantly having a separate playlist-selector.js allows third-party developers to swap in their own selectPlaylist() implementations.

In order to make the delegation to PlaylistSelector work, I require three calls from xhr(): onTransferStart, onBytesTransferred, and onTransferEnd. Note that I have added an onprogress handler for collecting data as we are downloading the segment.