add generalized batch/flush module

  - call buffer_receive to add a new item to the outgoing queue
  - including class must implement flush(), which will be called with all
    accumulated items either when the output buffer fills (:max_items) or when a
    fixed amount of time (:max_interval) passes
  - call buffer_full? to determine if the module has hit :max_items. Module will
    block if buffer_receive is called while buffer_full? == true.
  - including class may implement on_flush_error(), which is called if flush()
    fails. (retries are automatic)
  - including class may implement on_full_buffer_receive(), which is called if
    batch_receive is called while the buffer is full.

tests are not complete yet. still in progress.
buffer_flush returns the number of items flushed

this is useful for tests, but may come in handy elsewhere
finish inital test suite

some of the tests which sleep a lot should be revisited. if we can find alternatives
which verify the same behavior and don't take so long, that'd be awesome.
add rdoc/yard documentation

mark buffer_clear_pending private since it should be.
don't re-raise errors

this was used for debugging specs
buffer_clear_pending was moved incorrectly

should be part of Stud::Buffer, not Stud.
add author note
link to Buffer in README
Merge pull request #2 from alexdean/master

generalized batch/flush implementation.