UniString? and related changes

Pull request contains three commits:

* simplification of `String?` protocols (it is no longer overloadable, string is a `Sequence?` of `Char` and nothing more). A lot of code assumes that `String?` is a sequence (has `iterator`)
* addition of `UniString?` protocol. `UniString?` is like `String?`, but over `UniChar`
* overload `printTo` for `UniString?`: sequence of `UniChar` is printed encoded as UTF-8 now, instead of comma-separated sequence of characters