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.
@JonRowe since `inspect` is being redefined in this class you can't use `self.inspect` in `initialize` to get the original `Object#inspect` implementation of it.  You'd need to use some awful hack like:

``` ruby
def initialize(inspect_output=nil)
  @__inspect_output = inspect_output || Object.instance_method(:inspect).bind(self).call
end
```

...which I think is far worse than what @kcdragon has already done.

All that said...we could probably just use `"(no description provided)"` when no string is passed since w/ this PR I don't think there's a circumstance where we instantiate this internally w/o an arg, right?  It's just that `ExampleGroup` is part of our public API and end users may instantiate it without an arg....that's why we support no arg, right?