The following modules are changed: TechnologyManager,
BuildListOptimizer, Simulation (just function signature adaption)

TechnologyManager.h: Added getEntityRequirements() for getting all
possible requirements for a specific Entity. This function is required
for the the "soft rating"-function of FitnessPolicy

BuildListOptimizer: Changed function signatures again in both, header
and source file. Now target, time limit and the number of targets to be
built are passed as function arguments instead of setting member
variables. Consequently those can be specified for every single
optimization and don't have to be specified when creating the
BuildListOptimizer-Object

Simulation: The runAndGetResult() method is changed back to run(), but
now with an additional argument: timeLimit. Consequently, when this
function is called the Simulation shall stop when the number of
timesteps reaches timeLimit even if the BuildList was not finished.
Sorry guys, but this makes things much easier and shouldn't be that
complicated to implement.