Fixes interpolation on ActiveSupport::SafeBuffer

Interpolation was untested and did not work with hash arguments:

```ruby
"%{x}".html_safe % { x: 1 }
```

would break.

Adds tests for both array and hash arguments, and adds hash support.