etna driver: general low level command buffer building

Also implements synchronization commands such as flush, finish,
semaphores and pipe switching.

- Create N command buffers, with a signal for each buffer
- Before starting to write to a buffer, wait for buffer's sync signal
- After a buffer is full, queue the buffer's sync signal and switch to next buffer

This is a first step towards an animated, rotated framebuffer demo.