Clean up BufferHubQueue API and internal bookkeeping.

- Simplify buffer hangup accounting.
- Add extra checks to gracefully handle the epoll set and slots array
  being out of sync.
- Add tests for detaching buffers.
- Switch to using Status<T> for all return/error values.
- Fix minor bug in BufferHubQueueProducer from earlier Status<T>
  return value change.

Bug: 36401174
Test: buffer_hub_queue-test passes.
Change-Id: If7f86a45cc048dc77daa2ede56585d3f882dd24f
7 files changed