Add better `inspect` output for ExampleGroup

Pull Request for #1590 

The only problem I ran into was that the syntax error in the after hook test produces error output while running the spec (the test still passes).

> An error occurred in an `after(:context)` hook.
>   NoMethodError: undefined method `expcts' for #<RSpec::ExampleGroups::SomeClass_3 after(:context) hook>

This is definitely not ideal because it could distract from problems with "real" after hooks. The only two options I could up with were: 1) remove the test, or 2) add a way to suppress that error. I'm interested in your thoughts on the best way to handle this.
I was overriding it to prevent `@__inspect_output` from being re-assigned [here](https://github.com/rspec/rspec-core/blob/master/lib/rspec/core/example_group.rb#L424-L426) and [here](https://github.com/rspec/rspec-core/blob/master/lib/rspec/core/example.rb#L173-L175).

I could skip over `@__inspect_output` at those two locations but I wanted to keep knowledge of that variable inside the instance.

Right now, I'm working on changing the method to:

    def instance_variables_for_example
      instance_variables - [:@__inspect_output, '@__inspect_output']
    end

but that causes the "minimizes the number of methods that users could inadvertantly overwrite" spec to fail since it adds a new method to `ExampleGroup`. I'm wondering if that's OK or if it would be better to remove `@__inspect_output` whenever we call `ExampleGroup#instance_variables`.