provider/azure: filter out unsupported role sizes

Not all locations support all role sizes, so we
now query Azure's ListLocations API to check
availability.

Additionally, we have found that creating virtual
networks with affinity groups restricts which role
sizes can be provisioned, presumably because this
restricts the physical hosts which may be used.
We switch to using Location in virtual networks
instead, and filter out D and G series role sizes
in environments with a virtual network tied to an
affinity group. Higher performance A-series role
sizes may also fail, but are only going to be chosen
by users to specify the constraints accordingly
anyway.

Fixes https://bugs.launchpad.net/juju-core/1.21/+bug/1398406
Address review comments
Fix comment
Merge pull request #1262 from axw/azure-rolesizes

provider/azure: filter out unsupported role sizes

Not all locations support all role sizes, so we
now query Azure's ListLocations API to check
availability.

Additionally, we have found that creating virtual
networks with affinity groups restricts which role
sizes can be provisioned, presumably because this
restricts the physical hosts which may be used.
We switch to using Location in virtual networks
instead, and filter out D and G series role sizes
in environments with a virtual network tied to an
affinity group. Higher performance A-series role
sizes may also fail, but are only going to be chosen
by users to specify the constraints accordingly
anyway.

Fixes https://bugs.launchpad.net/juju-core/1.21/+bug/1398406

(Review request: http://reviews.vapour.ws/r/576/)