Limit the spamminess of default deprecation messages

As discussed in https://github.com/rspec/rspec-mocks/issues/386
Add spec for File deprecation_stream output
Changelog entry
Simplify Hash initialization
Extract classes for File and IO behaviors in DeprecationFormatter
Defer printing deprecation warnings until summary
Remove factory method for DeprecationFormatter
Move away from Struct-based formatter implementations
Use formatter pluralize helper