Switched anti-affinity feature to server groups

Switched implementation of anti affinity to server groups for both
direct and heat engine.

Direct engine change is backward compatible. Sahara will detect if
old logic is used and will use the same logic for cluster scaling.

Note, behavior of anti-affinity changed. Now Sahara will create one
server group for cluster and will assign all affected instances to it.
So, if anti-affinity enabled for datanode (`dn`) and tasktracker (`tt`)
Sahara will not assign node with `dn` and node with `tt` to the same
compute.

Also note, that server group support will be added to heat only in
juno-3. So, environment with up-to-date heat is required.

Closes-Bug: #1268610
Implements: blueprint anti-affinity-via-server-groups
Change-Id: I501438d84f3a486dad30081b05933f59ebab4858
Merge "Switched anti-affinity feature to server groups"