Reduce memory usage for chunk_hashes

On a 180MB file this reduced total memory
usage by approximately 40%.  This was also marginally
faster (but not by much).

I've also added the start of unittests for the writer module,
and I've written some very basic unittests for the chunk_hashes
function.
Allow single op threshold to be configurable

This is the threshold at which the Vault class will
use a multipart upload instead of a single operation
upload.
implement snapshot.create_volume()
Put docs for parameters in the same order as parameters
Allow non-numerics in a Constraint attributes. Fixes issue #941.
Allow non-numerics in a RegExConstraint's attributes. Fixes issue #941.
Get_batch return empty answer for empty batches
add integration test for empty batch
add connect_glacier to the main boto object.
Moved setmeta logic from GSUtil to boto.
Fixed style errors; added metadata normalization to boto.key.
Added retreive-inventory function
Allow upload_archive to accept file like objects

The entire file is never read into memory, only (configurable)
single chunks are read at a single time.
Merge pull request #968 from jamesls/glacier-perf

Reduce memory usage for chunk_hashes
Merge pull request #970 from ByteInternet/implement-snapshot.create_volume

Add create_volume() method to boto.ec2.snapshot.Snapshot
Merge pull request #973 from jtlebi/develop

Get_batch return empty answer for empty batches
Merge pull request #977 from jamesls/glacier-fileread

Allow upload_archive to accept file like objects
Raise a ValueError when writing to a closed file

This is consistent with other file like objects including:

* file
* tempfile
* StringIO
Merge branch 'glacier-closedfile' into glacier
add get_batch_item to Table; generator to handle UnprocessedKeys and > req Items