Major playlist change

Abstracted core functions away from individual playlists and into an
abstract playlist model. Also made ready for implementation of watchers
in each type of playlist and general cancelation of watchers such as
players and folders.