Update algorithm to sign header names.

- See issue #10.
- Header names must be included in the signed string to avoid an issue
  where an attacker could switch header list order and header value
  order and end up with the same signature for different requests.
- Update parser, signer, and tests.
- Slight change to signer to always treat 'request-line' as the request
  line and never check for a header named 'Request-Line'.
- Add test from spec into a test file.
- Update spec text and example values.
Add 'dsa-sha1' to spec since code supports it.
Uppercase algorithm name for createHmac().
Add httpVersion to signer options.

Allow custom HTTP version and default to 1.1.