Fix String#slice! raise TypeError or return invalid value.

String#slice! raise TypeError:
```
% mruby -e '"0123456789".slice!(0, 11)'
trace:
	[1] /home/tommy/work/mruby/mrbgems/mruby-string-ext/mrblib/string.rb:201:in String.slice!
	[0] -e:1
/home/tommy/work/mruby/mrbgems/mruby-string-ext/mrblib/string.rb:201: expected String (TypeError)
% mruby -e '"0123456789".slice!(0..10)'
trace:
	[1] /home/tommy/work/mruby/mrbgems/mruby-string-ext/mrblib/string.rb:206:in String.slice!
	[0] -e:1
/home/tommy/work/mruby/mrbgems/mruby-string-ext/mrblib/string.rb:206: expected String (TypeError)
```

String#slice! return invalid value:
```ruby
s = "0123456789"
s.slice!(0...4)   #=> "0123"
s                 #=> "56789" but it should be "456789"
```