Integer#chr raises RangeError on more invalid codepoints.

MRI behaviour with invalid codepoints is to raise RangeError, while
RBX was to produce strings with invalid encoding.
Additional tests have been written to ensure RangeError is raised on
a selection of invalid codepoints from UTF-8 and UTF-16.