Make `String#remove` and `String#remove!` accept multiple arguments

Quite often when I use `String#remove` I need to remove multiple patterns from the string at once. This change makes method handle multiple arguments without breaking backwards compatibility.

Before:

```ruby
["this", "that", /and that/].each do |pattern|
  text.remove! pattern
end
```

After:

```ruby
text.remove! "this", "that", /and that/
```
should still test the return value on this line

```ruby
original = "This is a very good day to die"
assert_equal  "This is a good day", original.remove! " very"
assert_equal "This is a good day", original
```

and as with `remove`, should test the multiple arguments in separate test