Add find_or_create to Sobject

This PR allows you to find or create a Sobject with a hash.

    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.