WIP: try to create fewer readers

takes a lot of time to create (hundreds of) readers
BUGFIX: pass dir to read_results
refactor read_results for clarity
__init__: verify credentials when storage_type == s3
s3_write_result: default to key permissions same as bucket
Merge branch 's3_speed'