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
I'd just raise an exception if instance is None.  Doesn't make sense to say whether None is an existing instance.  In fact you could even check that instance is an Instance.  Which would be fun just for the collision of the word instance:

```py
if instanceof(instance, Instance):
  raise Exception("instance must be an instance of Instance")
```