Refactoring
Changes in response to code review
Batch results, upload/download_file

I found that it's really useful to be able to ask whether or not a batch was
successful and in some cases to get the results of all the batched operations
so I added 'success()' and 'results()' to Batch.

Also, when uploading and downloading files in batches, it's really hard to
write wrappers around the 'upload()' and 'download()' methods to make access
safe. And you can't use 'with' syntax and achieve what you mean. So for batch
operations, it became necessary to have 'upload_file()' and 'download_file()'
which take filenames and write results out to there.
Merge pull request #1 from seomoz/mock

Refactoring to Support Mocking