Add back support for Array parameters

Took a while to get this right. Unfortunately, Faraday 0.7 and 0.8 can never
be totally compatible. Passing a params hash like `{a: [1, 2]}` will result in
a query string of "a=1&a=2" in Faraday 0.7 but produces
"a[]=1&a[]=2" in Faraday 0.8. We sign both cases correctly, but certain Java
APIs may not accept both forms.

Faraday 0.9 allows for pluggable URI generation but isn't done yet.

cr: @krobi64