renderer: replace ring buffer logic with queues for free, queued, and discarded buffers

@elupus this is follow up on our discussion on render buffers and implements your idea of using fences.

d416c5314e9a0c5faf0046abf165bbc89e267524 moves the ringbuffer into dedicated queues of free buffers, queued buffers, and rendered buffers. This is more flexible and allows the buffers carrying their own state.

It should not change current behavior even not for vdpau because it uses only a single pixmap buffer. #870 will require this change.

EDIT: updated scope, fence for detection when a buffer has actually been rendered was moved to a future pr.