Fix anti-affinity race condition on boot

The scheduler enforces anti-affinity policy.  However, since
scheduling can happen in parallel for more than one instance, it's
possible for the scheduler to schedule an instance to a host that will
end up violating anti-affinity.

This patch updates the instance build code in the compute manager to
do an anti-affinity policy sanity check.  If the policy would be
violated by spawning the instance locally, an exception is raised so
that it gets rescheduled.

Part of blueprint instance-group-api-extension

Change-Id: I1358c36dff47b4ecd07841535aa0653d0f6ba823