Strings::substring(): unified behavior when both start and length are negative

behavior of iconv_substr is inconsistent with mb_substr (http://3v4l.org/JvOlj)
Strings::chr(): throws exception for invalid code points (BC break)
Strings::fixEncoding(): fixed handling of lonely start characters in PHP < 5.4
Strings::toAscii(): unsupported characters are removed instead of being replaced with '?'
Strings: added tests for few more UTF-8 edge cases
typo