gapless playback
Work to enable #180 (closed), on top of !233 (merged).
This needs testing, so I left some debugspew in. The interactions between the different components need some further investigation as it is possible to trigger some odd states.
Feedback appreciated (with steps to reproduce).
Update May 4 2019
This is really gapless v6 or something, but it is easier to keep it in the same MR.
It works flawlessly for me with limited testing.