Merge pull request #8 from JoseExposito/master

Added support for PUT requests
Add very basic tests.

Add a tests binary and test target so you can `make test` to verify
nothing breaks. Initial tests exercise some utility functions and very
basic query string signatures with parameters. These tests only cover
requests that include unreserved characters.
Add missing test of urlencoding '%'.
Add notes about percent encoding, expand supporting API.

Add notes about how to handle percent encoding since it's difficult to
get right. To help library users who may not have good library support
elsewhere, provide some helper functions that do a better job than the
old, broad URLencoding we previously provided.