buffer implemented with pthreads instead of SDL
playlist: fix GrooveBuffer ref/unref race condition. closes #28