With browser-based drivers, the has_value?, has_select?, and
has_checked_field? matchers (and their negative counterparts)
did not always work correctly. It is not possible to determine
the dynamic state of inputs purely with XPath, because XPath
has access only to the value, selected, and checked _attributes_,
and only the corresponding _properties_ change in response to
user input. This commit replaces the pure XPath implementation
with one that retrieves all matching inputs and then filters the
results using driver-specific means that do reflect user input.