Umbrella commit for fixing tests

* Fixes many tests related to calling _validate_bdm with data we do not
want to mock too deeply

* Spotted an issue with snapshoting a volume backed instance and did
some refactoring that deal with image block_device_mappings

* Fixes the Cloudpipe tha got broken because of a missing image bdm

* Fixes cloud.py issues with the bdms

* Fixes api.py in _validate_and_provision instanc3 to check for
source type rather than volume ID

* Fixes some cloud tests related to EC2 api

Change-Id: Icc8b1b835544dab0be548b805a1a249457bb579a