Added simple log parser for parallel.py output
Added CacheResult class for cache() results
Added ConformResult class for conform() results
Moved error-handling out to _run_cache() and _run_conform()
Added elapsed time for each source to output