provider/azure: filter out unsupported role sizes (1.21)

(backport to 1.21)

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/579/)