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.