multithreading datacardProduction

optimizing the data card production code:

- background yields are now only calculated one
- yield computations are parallelized with multithreading