Add support for finding node by multiple attributes

This adds a Rails-style `find_by` method that accepts a hash of 1 or more attribute/text pairs to match nodes against. A `find_by!` method was also added that raises a `Capybara::ElementNotFound` exception when no match is found.
I'd argue `where` and `find_by` should behave differently.  I'd expect `where` to return an array of nodes and `find_by` to return the first match.  Thoughts?  I can add `where` if you think it'd be useful; I haven't had that use case yet, but see the value.