Fix handling of large signature base strings.

Add tests that use very long query strings to ensure the code works
properly on very large buffers. These tests use 16K long query strings,
resulting in even larger buffers for generating signatures.

Based on these tests, fix the HMAC_SHA1 signing code to handle these
long buffers. The code that was breaking was pointless anyway -- fixed
sized buffers were used to construct combined buffers that were then
passed into the SHA1 function. Instead, we can just take the two
separate buffers and call Update() for each one, avoiding allocation of
buffers, copying of data, etc.

As a side effect, this got rid of most of the buffers used during
computation, got rid of any heap allocation, and reduced the size of
some other buffers. Now we only have 3 buffers, each a SHA1 block
size (64 bytes) in length. All are allocated directly as arrays in the
CHMAC_SHA1 object. Two are the buffers used in computing the HMAC
signature and one holds the SHA1-based key (either the data directly if
short enough or the SHA1 of the input data).

Fixes #12.
Merge branch 'handle-long-query-strings'