prepare release 2.0.4
client.rb: fix inspect and make it shorter
middleware.rb: introduce Middleware.percent_encode
rename: test_payload.rb -> test_default_payload.rb
move contain_binary? from OAuth1Header to Middleware for reuse, also:

* no need to check against IO, responding to read is enough.
* support for putting binary inside an array.

note that the spec allows values with the same name, so we must
support an array of values, but not nested values like hashes or
array of arrays.