Refactor metadata so it does not subclass hash at all.
Simplify a few things related to :parent_example_group.

- Always have a :parent_example_group key. It'll return
  a blank hash if there is no parent example group.
- Simplify how `full_description` is built.
Simplify group metadata default proc.

...and get it to work better on 1.8.7.
Remove extra/duplicate :describes key.

It's confusing and unnecessary to have both
:described_class and :describes be the same thing.

I still need to deprecate :describes in 2.99.
Store :block in the metadata consistently.

We'll still need to deprecate :example_group_block
in 2.99.
Use `Proc#source_location` rather than `caller` for :location.

As @xaviershay discovered https://github.com/rspec/rspec-mocks/pull/401,
`caller` is surprisingly slow.