str: stop encoding invalid code points

The highest valid code point is 1114111 (0x10FFFF) and the modern UTF-8
standard guarantees that the maximum number of bytes needed to encode a
code point is 4 (instead of 6, in the legacy standard).

From <https://tools.ietf.org/html/rfc3629>:

Changes from RFC 2279

   o  Restricted the range of characters to 0000-10FFFF (the UTF-16
      accessible range).
auto merge of #5151 : thestinger/rust/utf8, r=catamorphism

Currently fails in the `json::tests::test_read_str` test. I'm not sure why.



The highest valid code point is 1114111 (0x10FFFF) and the modern UTF-8
standard guarantees that the maximum number of bytes needed to encode a
code point is 4 (instead of 6, in the legacy standard).

From <https://tools.ietf.org/html/rfc3629>:

Changes from RFC 2279

   o  Restricted the range of characters to 0000-10FFFF (the UTF-16
      accessible range).