UnitOptimizer
Changed the module as we discussed. Now Lists are optimized against each
other. A start value is chosen to make the iteration more scientific and
then in every iteration a new optimum is chosen for both lists.
I currently have a problem with async/future that prevents me from
nicely parallelizing everything, seems to be connected with templates.