Allow greater flexibility in listen directive.

Currently the module does not allow to specify specific bind options
per IP we are binding haproxy onto.
Hence, if a user has a service available across several network, but
with different haproxy bind option according to the network, s/he can't
configure haproxy with the current state of this module.

It aims to make it possible to have configuration as the following:

```
  bind 192.168.2.1:80 ssl crt public.puppetlabs.com.crt
  bind 10.0.0.1:80 ssl crt private.puppetlabs.com.crt
  bind 178.35.67.12:80
```

by doing

```puppet
haproxy::listen {'apache00' : 
  ports => '80',
  ipaddresses_and_bind_options => {'192.168.2.1'  => ['ssl', 'crt', 'public.puppetlabs.com.crt'],
                                   '10.0.0.1'     => ['ssl', 'crt', 'private.puppetlabs.com.crt'],
                                   '178.35.67.12' => []},
}
```
Hmm. I think I like @antaflos 's idea for adding a `bind` attribute that expects a hash of ip+port+bind options hash, and that can be exclusive to using `ipaddress` and `ports`. So you can use bind, or ipaddress and ports, but fail if they pass both.