Remove gevent dependency, move back to Python threading
Make API threads daemon threads
Batch out search/playlist getTrack calls and hide unplayable tracks
Playlist length can't be relied on, check it by retrieving tracks
Fix infinite recursion bug
Add playlist add/delete/rename support, automatic track restriction
handling and track starring.
Invalidate playlist caches and reload when appropriate
Add playlist add/remove test
Merge branch 'thread'