Aggregate: Hosts isolation based on image properties

Isolates hosts based on image properties and aggregate metadata
 - If a host doesn't belong to any aggregate it can create instances
   from all images.
 - if a host belongs to an aggregate and if this aggregate defines
   metadata that match with the image properties then the host
   is a candidate to boot the instance.

DocImpact
Change-Id: I3b9325e2e103f3bb6eed66789ac2c82941e94397
Implements: blueprint aggregate-host-isolation-based-image-properties
Merge "Aggregate: Hosts isolation based on image properties"