use stdlib logging in cache code
Make CacheKey hash and pickle friendly

Only use the id and hash for hashing, pickle, and equality
since those are the things we need in cache workers
Multiprocessing Queue Based Cache Fetch

Replaces the submit_forefround_work with vanilla multiprocessing.
Loses some reporting for now, but 10x speedup. Will come back
and add workunits that are completed by the consumer thread to hook
back into reporting once we figure out how download vs extract should look.