Huge rewrite for playlists. See issue #6 for more.