exclude_pattern with 1 glob starting with ./ doesn't match any files (work in progress)

The exclusion filter doesn't find any files when given a single glob starting with ./ (related to #1695). Since no files are found, it returns an empty array and does not remove the files from the set to be run. As a result, files that we would expect to be excluded are not excluded.

__Pattern starts with spec/__
```
rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb  --exclude-pattern spec/features/\*\*/\*_spec.rb
Run options: include {:focus=>true}

All examples were filtered out; ignoring {:focus=>true}
 1/1 |========================= 100 ==========================>| Time: 00:00:00

1 example, 0 failures
```

__Pattern starts with ./spec/__
```
rspec --pattern spec/\*\*\{,/\*/\*\*\}/\*_spec.rb  --exclude-pattern ./spec/features/\*\*/\*_spec.rb
Run options: include {:focus=>true}

All examples were filtered out; ignoring {:focus=>true}
 3/3 |========================= 100 ==========================>| Time: 00:00:01

3 examples, 0 failures
```

I should have noticed this when I fixed the inclusion case. :(  I'll take a shot at this soon; it should be easy having just fixed the other case.
Rather than using `File.expand_path` here, you can use the `contain_files` matcher you wrote.  It reads better with an alias (IMO), so I'd do:

``` ruby
RSpec::Matchers.alias_matcher :a_file_collection, :contain_files
```

...and then here the `to` expression becomes:

``` ruby
to( a_file_collection("spec/rspec/core/resources/a_spec.rb") )
```

The benefit here is that it leverages the matcher, which means that rather than specifying that `files_to_run` returns the absolute path, it specifies that it returns some kind of reference to this file (and it doesn't care if it's relative or absolute).  That makes this spec less brittle.