Circular Buffer APIs

Circular buffers are used for communication between threads of the Tensix core. They act as limited capacity double-ended queues with a single producer pushing tiles to the back of the queue and a single consumer popping tiles off the front of the queue.