Fix SingleByteEncoder for code points above U+FFFF.

Return an error rather than silently skip such code points.
converted `test_non_bmp` to the encoder test.