Test EncodedSring#to_s for undefined conversion / invalid byte sequence

Related to https://github.com/rspec/rspec-core/pull/1760
I think I like them, but I'd prefer to see them organized like this:

``` ruby
context "when appending an ASCII-8BIT string to a UTF-8 string" do
  let(:ascii_string) { ascii_arrow_symbol.force_encoding("ASCII-8BIT") }
  let(:valid_unicode_string) { utf_8_euro_symbol.force_encoding('UTF-8') }

  it "normally raises an Encoding::CompatibilityError" do
    expect{ valid_unicode_string.encode(target_encoding) << ascii_string }.to raise_error(Encoding::CompatibilityError)
  end

  it "replaces unconvertable characters with a string representation of their hex value" do
    resulting_string = build_encoded_string(valid_unicode_string, target_encoding) << ascii_string
    expect(resulting_string).to eq("#{utf_8_euro_symbol}?")
  end
end
```

That way those expectations are clearly labeled as demonstrating what would "normally" occur if it were not for our handling of that case.

(I realize that appending an ASCII-8BIT string to a UTF-8 string won't always trigger that error, so the context description should probably be different...but that was the best I could come up with since I'm not really sure what it is about these specific strings that cause this error).