Make test doubles self-destruct after the example completes.

Test doubles are not designed to be used outside of
the example they were created in.
No need for ProxyForNil to have its own file.
Centralize error classes in error_generator.rb.

Also, document some of them as public since
users may want to rescue them, or specify
a block will raise one of these errors
(e.g. in an rspec-mocks extension gem).