Enable filtering server list when querying.

This patch makes it possible to do something like:

    server 'example.com', some_property: true
    on(:all, filter: :some_property) do |h|
      # ...
    end

This is the shorthand syntax which checks the host properties for anything
truthy matching the key name given. Symbols and strings are supported here.

If a more complex match should be made, then a continuation can be given in
the place of the smybol:

    server 'example.com', some_property: true
    on(:all, filter: lambda { |h| h.properties.some_property }) do |h|
      # ...
    end

The keys `filter` and `select` are aliases of one another. Either may be used
interchangably.

An execption is raised if the filter removes all matching servers.