Improve docs some more.
Move methods only needed by our tests into spec_helper.
Remove warning detection logic that is in rspec-support now.
Merge shared examples collection logic into main shared examples file.
Move shared group registry instance into world.

It belongs there, as that's where global
non-config state belongs.
Rewrite shared example group scoping specs.

The old specs were coupled to the implementation
(the Collection class), inhibiting refactoring.

As part of this I discovered a bug (see the pending
specs), which I'll fix in the next commit.
Fix bug with shared example group scoping.

Given the following contexts:

# main
describe "Parent" do
  # parent
  context "nested" do
    # child
    include_examples "some shared context"
  end
end

...the lookup algorithm for a shared example group
looked through the following contexts in this
order:

parent -> child -> main

...but it should happen in this order:

child -> parent -> main
Refactor: simplify how shared example groups are found.
Make `Registry#shared_example_groups` private.

No need for it to be public.
Update code and docs to make arguments more explicit.
Access `caller` lazily in a block rather than as an arg.

`caller` can be slow so it's best not to call it if
we don't need it (via `CallerFilter.first_non_rspec_line`).
Remove extra aliases for creating shared example groups.

We don't need `share_examples_for`, `shared_examples_for`,
`shared_examples` and `shared_context`.

Just `shared_examples` and `shared_context` are needed.
`shared_examples_for` has been around long enough and
reads well enough that we are keeping it, too.

A 2.99 deprecation is needed for this.
Update shared example group docs.
Add changelog entries.
Merge pull request #1425 from rspec/cleanup-shared-examples-code

Cleanup shared examples code (and a few other things)