added optional availability zones to openstack cloud driver

Depends on libcloud trunk at this time.
Expands on #12866, but does not check libcloud version.
Unfortunately, trunk is labeled 0.14.1 in `libcloud.__version__`, so I don't see any way to test for trunk.