Re-do signedUrl and move its tests around.

- New interface is a third "options" parameter. This is a breaking change.
- This allows using pre-signed URLs for PUT, since Content-Type is required for that: fixes #152.
- Reorganized the test suite since things were getting cluttered in knox.test.js. Also converted most signedUrl tests to actually do requests.