Multithread parsing

Adds multithreaded parsing of files. It's not strictly a performance benefit but I found that using two threads reduces the parsing time from 56 seconds to 50 seconds. The number of threads used is controlled through the config file I added. If a setting of 0 threads is used, it will use one thread only. I also tried to decrease the memory usage through sys.intern of strings.