Give a reason why NoValidHost in select_destinations

When we can't schedule an instance build because there are fewer
available hosts than requested number of instances we raise NoValidHost
but don't give a reason.

This change adds a reason and a unit test for the greater-than-zero
NoValidHost case.

Related-Bug: #1372588

Change-Id: Ibd17b3d582b6e1470cd075d73e3dcaa63c9a667e
Merge "Give a reason why NoValidHost in select_destinations"