provider/ec2: try next AZ on InsufficientInstanceCapacity

InsufficientInstanceCapacity may be returned by RunInstances
if the AZ cannot allocate instances of the specified instance
type. We will now handle this the same as constrained zones,
by retrying the request with the next least-populated zone.

Fixes https://bugs.launchpad.net/juju-core/+bug/1389037
provider/ec2: type switch in isZoneConstrainedError
Merge pull request #1057 from axw/lp1389037-ec2-az-InsufficientInstanceCapacity-1.21

provider/ec2: try next AZ on InsufficientInstanceCapacity (backport)

(backport to 1.21)

InsufficientInstanceCapacity may be returned by RunInstances
if the AZ cannot allocate instances of the specified instance
type. We will now handle this the same as constrained zones,
by retrying the request with the next least-populated zone.

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