Add mutation operations to playlists

As part of this, ditched the thread-safe mutable list
implementation. Instead, use locking around an array list. This is just
easier and the monitor overhead should be fine for this application.
Bump