Catch image and flavor exceptions in _build_and_run_instance

If a user selects a flavor with a disk size that is smaller than
the requested image, a FlavorDiskTooSmall exception is thrown.
However, this exception is not specifically caught in
_build_and_run_instance, but is caught as generic exception,
causing a RescheduledException to be thrown. This forces the
instance to be rescheduled a few times before finally throwing
a NoValidHost exception. It causes confusion because the actual
cause of it is that the disk size is smaller than the requested
image. The following patch properly catches exceptions thrown by
_check_requested_image in _build_and_run_instance.

Change-Id: Ic8b435ba7e8721aa8ca54f29c1ad808833a7608d
Closes-Bug: #1330856
Merge "Catch image and flavor exceptions in _build_and_run_instance"