Revert "Reify shared example groups as a first-class type."

This reverts commit d2633abc5a20334bac48a3c2513ab84a0c587284.

I realized this broke SemVer by renaming `SharedExampleGroup`
to `SharedExampleGroup::DefinitionAPI`. I'm going to re-work it
in the next commit from scratch.
Re-implement shared example group reification.

This is a reimplementation of d2633abc5a20334bac48a3c2513ab84a0c587284
from #1753.

- Allows us to provide pretty `inspect` output, which
  is far better than the anonymous module output we
  normally get.
- Simplifies the creation of the shared example group.
  Previously each group instantiated a module and defined
  `included` as a singleton method.
Merge pull request #1764 from rspec/reify-shared-example-group-redux

Reify shared example group redux