BufferObserver interface. Buffer is no longer a sync.Locker.

Methods modifying the buffer will now return an error rather than
deadlock when modification is not possible.