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
validate_properties!(key, value)
  if !allthatshit
    raise ConfigurationError
  end
end
```