Fix the underscore protocol's string implementation

The behavior of underscore was at odds both with ActiveSupport's
behavior as well as its own documentation. This fixes the common cases,
omitting only ActiveSupport's internal acronyms registry.

Note that it does change an existing test case to be consistent with
ActiveSupport's actual behavior on the input, so this would seem to
change behavior about which someone cares. If so, you may want to reject
this and simply correct the documentation.