Fix some regrets about the last commit.
basic test for parallel install
introduce shard(), installedFile()
Make shard install thread-safe.
Not download a shard that's in the process of being downloaded
introduce an explicit lock object