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,
  including verifying that objects that respond to :to_s but not :to_str
  are not accepted.