Added startsWith() and endsWith() for yii\helpers\StringHelper

See #5316

I've tested different implementations, big strings and `mb_substr` + `mb_strlen` with `8bit` check is pretty efficient.
Case-insensitive check of course is much slower, where additional `mb_strtolower()` is triggered to ignore the case for multibyte strings.

If you meaned using instead of `====` http://php.net/manual/en/function.strcmp.php (because in this state we have two strings with the same number of bytes).
I've tested it for this case and found no big difference. For some tests it works like ~%3 faster, for other tests even ~%5 slower.

I think that's because functions like `strcmp` or `substr_compare` need to calculate *full* difference between two strings (eg. $string1 is bigger than $string2 [by 100 bits](https://bugs.php.net/bug.php?id=53999)), while `===` could do just simplier comparison (I hope until first diff).

Here is reference I've found also: http://snipplr.com/view/758/
Those results on simple strings are even more dramatic comparing to my results with 3-5% difference on big multibyte strings
```
strcmp with matching strings took 0.038621 seconds
strcmp with non-matching strings took 0.039353 seconds
=== with matching strings took 0.004218 seconds
=== with non-matching strings took 0.004694 seconds
```