Implemented test_cloud_instance_discovery.py

1. Added cfme/test/cloud/test_cloud_instance_discovery.py, which is based on cfme/tests/infrastructure/test_vm_discovery.py

2. Added _load_details() to the Provider class in cfme/cloud/provider.py

3. Added a try/catch around call to is_vm_suspended() in Vm.delete_from_provider() for cases where the provider doesn't support returning Vm status (EC2)

4. Paginator.find() now raises an error if the element is not found

5. Misc. small bug fixes and improvements
This is one way to go, but this decision applies all over our repository.  

Do we want to Error out or Skip when a setup fixture fails?  The default is Error, obviously, and that's what all our fixtures do.  At least I think we should be consistent here.  

The problem is, when setting up a provider fails, we won't be able to analyze why until the run is over.  Sometimes it's an error where we wish it would just skip (eg provider is temporarily down), other times, it'll be one we want to see in big red letters (there is a bug in the setup automation).  We don't know in advance.  

I don't think we should swallow the error, at the very least.