Automate cloud provisioning

Added eligible_* and set_* methods for cloud resource from the automate model.
sure feels like you could create a hash out of the `class_to_resource_type_and_key_hash` (the name of this hash was changed to protect the innocent)

```
  new_hash = old.hash.each_with_object({}) { |pair, hash| hash[pair.last.first] = pair.last }
```

It seems a little odd that we are using underscores and then camel casing it.
But that is probably legacy reasoning since we have that else clause.