Strings: added tests for more UTF-8 edge cases

I looked into some UTF-8 / Unicode edge cases. 

* All UTF-8 related functions operate to code point level. I mentioned it explicitly in `Strings::length` phpDoc. Should we add similar note to all methods or maybe to just to class phpDoc?
* `iconv_substr` handles negative length + negative offset [differently](3v4l.org/JvOlj) than `mb_substr`, therefore the new `substring` test case will fail when `mb_substr` is not available. Suggestions?