Fix for issue #26 (Unicode decoding issue)

The unicode escapes were handled improperly: the code just added the hex digits of the codepoint number in reverse order to the output string. The PR parses the four hex digits, constructs a codepoint from it and appends the UTF-8 representation of the codepoint to the output.