Additional test cases on Integer#chr regarding invalid codepoints.

Additional tests have been written to ensure RangeError is raised on
a selection of invalid codepoints from UTF-8 and UTF-16.
Stricter test in String::from_codepoint regarding invalid codepoints.

Checking if ONIGENC_CODE_TO_MBC(...) <= 0 is not enough in discovering
if we're trying to convert an invalid codepoint into a string.
Using Encoding::precise_mbclen ensures the problem is caught and raised.