Ipv6 support for networks and monitor address

I think this one can be hard to understand.

First, I created a filter to have operations on network addresses. It need the ipcalc Python module.

The I updated the ceph.conf.j2 template. The philosophy is to have the same behaviour as before if monitor_interface is defined, but trying to find address according the public_network IP version. If monitor_interface is not defined, we try to find automatically the address looping over the interfaces to find one in the public network.

Feel free to ask me if you don't understand my changes.