Data.String: fix infinite loop if a:from is part of a:to

こんにちは

Data.Stringのreplaceで、引数のfromがtoの一部だと無限ループするので修正しました。

例えば、以下の様なケース

```vim
" fromとtoが同じ場合
call s:String.replace('hogehoge', 'hoge', 'hoge')

" fromがtoの一部の場合
call s:String.replace('hogehoge', 'hoge', 'hoge1')
```