Refactoring playlists into their own view model.
This is the initial refactor for static playlists.
It works for fetching and showing playlists
Moving the add tracks to playlist methods to the playlist view model
Forgot to make the playlist name observable
Refactoring the auto playlists to use the new playlist viewmodel
Further refactoring to make the playlist viewmodel's actions part of the prototype, not the instance
Removing dependency for the child viewmodel to know about the parent viewmodel
Replacing parent references with callbacks
Refactoring the static playlist adding functionality to happen using the PlaylistViewModel
Refactoring the add auto playlist to work via the playlist view model
Fixing the wonky dequeuing effect when there's multiple copies of a track in the queue
Creating a basic track viewmodel and doing an non-destructive change
Adding fetch/caching ability to the track view model
Renaming the load track library to make more sense with everything else
Although I'd like to get rid of the unobservable track library, we'll need to keep it for fast O(1)ish track lookups
This also fixes playlists not displaying
Creating a viewmodel to handle playback and now playing lists
Moving the ontimeupdate event handler to its own method
Tweaking the art href building to prevent bad requests to the server
Removing dead code
Moving next track function to the playback view model
Adding playback toggling and previous track to the playback viewmodel
Adding shuffle toggling and repeat toggling to the playback viewmodel
Adding play button startup from nothing to the playback view model
Moving the scrubber dragging into the playback viewmodel