Quick/Quick — pull request #184 by modocache (2014-11-06 05:03:16+00:00)
Title: [WIP] Configuration: Add example filters

Supports #134 by allowing users to specify example filters on
Quick.Configuration. See `FocusedTests.swift` for sample usage.

Filters come in two forms:

1. **Inclusion** filters: Only examples that meet the criteria specified
by these filters are run.
2. **Exclusion** filters: Examples that meet the criteria specified by
these filters are not run.

By default, Quick is configured to only include examples where
`example.isFocused` is true.

But `example.isFocused` is false by default. This means that, by default,
Quick runs no examples, right? Wrong! Because Quick.Configuration is
also initialized with `runAllWhenEverythingFiltered` as true. In other
words, in the case that **no examples** escape the filters, **all
examples** are run.

All this is pretty much exactly how RSpec does things:

- https://www.relishapp.com/rspec/rspec-core/v/3-1/docs/filtering/inclusion-filters
- https://www.relishapp.com/rspec/rspec-core/v/2-0/docs/filtering/run-all-when-everything-filtered

The main difference between RSpec and Quick, however, is the fact that
RSpec examples do not have an `isFocused` property. Instead, it allows
users to specify arbitrary key-values when defining an example or
example group.

/cc @jspahrsummers @paulyoung