allow user to pass in opts

*Example Hash*
```ruby
opts = {
  'serializer.class'      => 'kafka.serializer.StringEncoder',
  'partitioner.class'     => 'kafka.producer.DefaultPartitioner',
  'request.required.acks' => '1'
}

Hermann::Provider::JavaProducer.new(broker_ids, opts)
```
Issue #52 
```ruby
options.each do |key, value|
  validate_property!(key, value)
  properties.put(key, value)
end
```