Add pry to the gemfile for better local testing/dev
Add support for running integration tests through RSpec against a pre-configured broker/topic

This will make it a bit easier to run local tests in a more automated fashion
against some non-public broker hostnames
Fix a test-discovered issue when calling Hermann::Lib::Producer#tick without having started requests
Propagate the timeout from Hermann::Producer#tick_reactor down into the rd_kafka_poll calls

This also introduces some more/better error handling in Hermann::Lib::Producer#tick

Fixes #24
Add a Rake task for running integration tests
Switch out all these ifdef TRACE statements for a cleaner TRACER() macro
Hold onto the Hermann::Lib::Producer pointer inside of the rd_kafka_conf_t
Add Hermann::Timeout abstraction for 1.8/1.9 compatible timeout support
Make use of Hermann::Timeout when ticking the Producers reactor to safely block for a value

This adds a requirement for 1.8.7 clients to install the SystemTimer gem for
timing out on Hermann::Result#value(timeout) to block and timeout correctly

Fixes #25
Refactor out the necessity for Hermann::Timeout and just rely in a Ruby-based busyloop
Introduce a wrapper struct to make message delivery callbacks able to change Producer data

This will help with determining whether we're no longer connected due to
failures after a push of a message
Expose an #errored? method which gets set if the general error callback is invoked

Fixes #25
Merge pull request #31 from rtyler/issues/25-producer-errors

Add lots more machinery to help identify errors outside of a `push` command
Propagate system broker errors into Hermann::Result objects

Provided that Producer#tick_reactor has been invoked, if there are underlying
errors like "1/1 Brokers down" then this code will ensure that outstanding
Herman::Result children of Herman::Producer will have their error status updated.

Fixes #25
Add a failing integration test for binary data

Just a quick reproduction case for #32
Merge pull request #33 from rtyler/issues/25-producer-errors

Propagate systemic errors from librdkafka up into Herman::Result objects
Avoid call to rb_string_value_cstr() which doesn't handle binary strings from Ruby properly

Fixes #32
Merge pull request #35 from rtyler/issues/32-binary-data

Avoid call to rb_string_value_cstr() which doesn't handle binary strings properly
Bump to 0.16.0 for the next release
Revert back to using rd_kafka_conf_set_dr_cb() which is 0.8.3 compatible

Fixes #36