parallel bags validation

uses multiprocess
optimize imports
verify known hash algorithm
verify that validate fails on unreadable file
more

note this makes test_carriage_return_manifest to fail, because
checksumming tries to read data/newline%0D file
previously it wasn't a problem as the error was hidden due to
empty f_hashes after BagValidationError
reshuffled imports
need to decode filename when reading them in from the manifest, and to encode them when comparing against the filesystem
added validation to benchmark script
Merge branch 'parallel-validate'