move selector description to the selector object

IMO the only point of this describe block is to provide user insight on why failure occurred if user used variables instead of values:
```ruby
have_field(checked: some_value)
```
It may turn out that for some reason (bug in user code) "some_value" is nil. Capybara considers `nil` as false as it invokes `nil ^ true` so it makes sense to consider it as `false` here too to make it more consistent:
```ruby
if options[:unchecked] || (options.has_key?(:checked) && !options[:checked])
```