Add support for floating IPs using nova API.

When using vanilla OpenStack with neutron, instances are commonly
accessible from the outside world only by using floating IPs.

This patch adds support for:
  - listing floating IPs
  - allocating a floating IP from a given pool
  - attaching a floating IP to an instance
  - de-allocating an IP and returning it to its pool.