Remove unnecessary code.

It's simpler to make the caller responsible for
creating the ConfigurationOptions instance.

None of our lib code actually relied upon the array
behavior.
Remove some semantic confusion from ConfigurationOptions.

Previously it was passed a `Configuration` instance
via `configure` and also referenced `RSpec.configuration`.
In practice, these were the same instance but it was
confusing to have two references to them that could be
different.

In addition, `configure` would set `config.filter_manager`
to the local filter manager instance, which would have
led to odd behavior if the configuration instances
were different, as it could cause previously set filters
on the config instance to be discarded.
Remove code that wasn't doing anything.

The `AT_EXIT_HOOK_BACKTRACE_LINE` was wrong now,
anyway -- the hook was more than 2 lines before
the constant declaration. So it was no longer
serving it's purpose. I can't repro the original
bug now, anyway, and it was related to our `at_exit`
hook which is no longer used when running specs
via the `rspec` command.
Improve Runner docs.

Also, reorder the code so that the public methods
are given a place of prominence at the top.
Split CommandLine#run into #setup and #run_specs.

These two tasks have to be performed separately from libraries like test-queue.
Parameterise the example_groups run in CommandLine.

Libraries like test-queue run a custom list of groups per worker
(in the test-queue case, the list wraps a socket that receives
example groups from the master). Parameterising the list here
allows a custom list to be supplied cleanly.
Merge CommandLine into Runner.

Both contained code related to running the specs.
`CommandLine` was really just the object the
`Runner` class methods delegated to. It wasn't
related to the command line much at all -- it was
used anytime the specs were run (not just when run
from the command line) and it didn't do any command
line parsing or anything like that.

`Runner` is a better name for it. Since it has only
instance methods and the existing `Runner` has only
class methods, merging it works nicely :).

This also provides a simple, clean mechanism for alternate
runners to extend RSpec: they can subclass `Runner`
and override the class methods, the instance methods,
or either. Since we just use `self.new` to create the
runner instance, they don't have to override the
class methods in order to make it use an instance
of their subclass.
Update specs to better show intent for subclassing.
Ensure the expected example count is reported accurately.
I prefer `.` for message sends.

`::` is primarily for constant scoping. Using it
for message sends is a bit non-standard.
Add changelog entries.
Merge pull request #1454 from rspec/runner-improvements

Runner improvements