Add find_or_create to Sobject

This PR allows you to find or create a Sobject with a hash.

```ruby
Lead.find_or_create("Name" => "H.P. Lovecraft",
                    "Email_Field" => "cthulhu@eldergods.com")
```

I think this is a nice complement to `find_or_create_by_*`, and follows the principle of least surprise.