fixes for handling surrogate chars properly

TestUTF32ToUTF8.TestRandomRanges were failing because of the issue with how the surrogate pairs were handled in Character class. Changed the implementation to call UnicodeUtils to provide correct ToChars implementation. Now the test passes.

Added method to UnicodeUtil to provide public API for converting code points to strings and chars so that we don't have to do repeating conversion (char[] -> string -> char[]).