+ Raise EncodingError when source includes invalid byte sequence

Previously, with an invalid encoding source, ArgumentError had been
raised as a side effect of String#gsub in Source::Buffer#raw_source=.

lib/parser/source/buffer.rb:171:in `gsub': invalid byte sequence in UTF-8 (ArgumentError)

https://github.com/whitequark/parser/blob/v2.1.9/lib/parser/source/buffer.rb#L171

This change enables users of Parser to handle the error more precisely
by raising EncodingError instead of the too generic ArgumentError.
Fix wrong usage of #assert_raises

`assert_raises` does not support message matching.

https://github.com/seattlerb/minitest/blob/e2e64b2f4783585f6d201d613ea67de1e2a172ec/lib/minitest/assertions.rb#L285-L316