Playlist: make removeTrackAtIndex just wrap removeTrack
- Also perhaps fixes a bug where track was not removed from the shuffle
list
Playlist: remove tracks from shuffle list when they are removed
Rework adding tracks to Playlist (part 1):
- No longer do this weird double call of addTrack (1 in bkg, 1 in main)
  - this was so that it can be put in the shuffle list of the main
    thread playlist
  - Resolves a bug where the track Index was wrong because it was double
    added and so the index was wrong by +1
    (first time was ok, but second time did count call again which now
     includes itself)
- Add to shuffle list in NSManagedObjectContextDidSaveNotification hook
  where the bkg thread changes are merged into the main thread
  - perhaps more logical place to do it
  - NB for future, if we ever do modifications/deletions in bkg thread
    we need to deal with these and update the shuffle list too.
- Make dedicated function for adding to shuffle list
Rework adding tracks to Playlist (part 2):
- Move all the thread/CoreData juggling from Playlist->PlaylistView
  - No longer calling a function on a main-thread Playlist in bkg-thread
    and then expecting that function to be aware of this and handle
    creation of new context and stuff
  - Since no cross-thread calling, model functions do not need to know
    about threads at all
- Remove need for the completionHandler. Just run it directly now
- Bugfix to do with indexing again:
  - if there were unsupported files, blockIndex would still get
    incremented even tho we are skipping