Normalize to absolute paths so that patterns work as expected.

This solves a problem where configuration treats dirname and ./dirname (and ./dirname and ././dirname, etc) as non-equivilant values, leading to unexpected bahvior when patterns are not consistently expressed. For example, given the pattern "spec/models/*_spec.rb" and an exclude_pattern "./spec/models/*", nothing would be excluded because of the spec ./spec mismatch.
Forwardport 3.1.3 release notes.

[ci skip]
Allow users to filter subdirs of their current dir.

This also greatly simplifies the backtrace formatter;
the system_exclusion_patterns approach made it more
complicated, as did always having an inclusion_pattern.

We only need the current directory as an inclusion_pattern
when it matches one of the built-in exclusion patterns.

Note that this was the approach that we originally had in #843;
it got lost in the refactoring in #1062 (af0b271c92ad2a3336eb70be7bf2c0de4325a568).
While it seemed like a simpler approach to always put the current dir
in the inclusion_patterns, in practice, this caused a sequence
of whack-a-mole regressions:

- #1328 (fixed by #1329)
- #1604 (fixed by #1616)
- #1705 (fixed by this commit)

I'm hopeful that returning to only including the current dir
in `inclusion_patterns` if it matches a built-in exclusion pattern
will solve these issues once and for all.
Extract sandboxing logic into a separate file.

The formatting specs rely on a particular expected
backtrace, which depends on which lines in particular
bits of the sandboxing code are on. Before, changes
to `spec_helper` would require updating the formatting
support expected backtraces. This change will isolate it.
Address ruby warnings from spec files.

For rspec/rspec-support#106.
Make the appropriate specs pending.

When running against rspec/rspec-support#106,
the warnings are only triggered for particular
cases that we can’t easily solve, so only pend
those specific specs.
Merge pull request #1683 from rspec/fix-spec-warnings

Fix spec warnings
Fix `subject` for `describe nil` and `describe false`.

Before, these were returning the string forms.

Fixes rspec/rspec-expectations#653.
Merge pull request #1710 from rspec/fix-describe-nil-or-false

Fix `subject` for `describe nil` and `describe false`.
changelog for #1710
Merge pull request #1708 from rspec/fix-1705

Allow users to filter subdirs of their current dir.
Forwardport 3.1.4 release notes.

[ci skip]
Remove global traps

This is what I tried so that rspec-core can play well with REPLs &
debuggers.

The problem is that rspec sets a global trap for the Ctrl-C
signal that exits rspec. If pry or byebug are running, this is most
likely not intended by the user.

The solution I thought of is to remove the global trap and rescue
interrupt instead. It seemd to me the only possible solution because
global traps for signals can't be disabled nor overriden.
Stop rescuing Exception

Rescue a fixed list of Exception types instead