Accept duck-typed strings that respond to :to_str as messages

* Modified message validation code to look for duck-typed strings that respond to :to_str instead of checking for being a real String.
* Extended test suite to test for and pin down the desired behavior.