Circular buffer

Replaces the buffered channel's backing queue to be circular-buffer based instead of linked-list based. This allows the channel buffer to be allocated when it's initialized and removes the mallocs that occur during adds.

Thanks to @je-so.