signed requests

This is the same as PR #127 but with merge conflicts resolved. Verified that `rake test` passes all tests. @d3mcfadden, @sebastienluquet fyi.
@luisvm I think you can only use the `.to_query` method on a hash if this gem is being used in a rails application context. That is because that method is only added by `ActiveSupport::CoreExtensions` modules. And the [implementation of that](https://github.com/rails/rails/blob/3d70f0740b26b0a137d7e6436f9909330f8ee888/activesupport/lib/active_support/core_ext/object/to_query.rb) also uses `CGI.escape` for the encoding. So apart from syntactic differences, and perhaps a small overhead in building and throwing away a hash object (vs string-concat), it doesn't looks like changing this would make a difference. And not taking dependencies on rails modules would make the gem usable in other ruby scenarios.

What do you think?