[WIP] Validating hash when downloading/extracting bundles.

An attempt to validate bundle hashes as they come in the door.  I was able to sha1 hash the file contents as they stream in, avoiding secondary passes over the file contents.

This is a follow on attempt to #32
We should add a test that asserts it throws an exception when it doesn't match the hash, just to be sure we are failing where we think we are:
```
@Test(throws = Exception.class)
```
will fail the test if it doesn't raise an exception.