Ensure :present by default
Update parameters and properties
Refactor the utility methods
* Make build_opts smarter
* Add parse_resource to parse a resource into a hash