The old stage span allocator had two primary flaws:
1. If a shared buffer was used by one command buffer, the entire buffer
would be held and any remaining regions unusable until that command
buffer completed.
2. Allocated shared buffers would never be released.
Instead, have command buffers only hold the specific spans rather than
whole buffers, and release any buffers who have been unused across a
certain number of command buffer fetches.