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.
While the "normal" way to define examples is to include a doc string, there's another case to consider: when there's no doc string, as is common with the one-liner syntax (`it { is_expected.to matcher }`).  In this case, RSpec winds up assigning a description to the example based on the matcher after the example has completed, but that description gets assigned too late to use it here.  Instead, it should use the [fallback description](https://github.com/rspec/rspec-core/blob/v3.0.4/lib/rspec/core/example.rb#L77) of `"example at #{location}"`.  I think your implementation will already do this, but then it also includes the location a second time...it'd be good to have it only include the location if it's not already included in the description (and a spec to show this behavior would be great!).