Add support for 4 byte UTF-8 characters and stricter character checking

With amongst other things the emoticon parts of the new versions of UTF-8 the lack of proper checking of the strings as defined in RFC 3629 has become apparent. More info in this issue can be found at http://forum.dcbase.org/viewtopic.php?f=18&t=956

This branch also adds stricter checking of utf-8 strings to detect things like control characters encoded using 2 bytes amongst other things.

Finally tests for these features have also been added.