nitunit use the trick of #947 to optimize the execution of simple docunits.
There is now two execution modes: the *single* one and the *simple* one.
*simple* is for docunits that contains only some statements (without importation, classes or functions)
All *simple* docunits of a single module are regrouped into the same program with a switch that calls the correct docunit.
*single* is for docunits that contains importations, classes, functions, etc.
It the the old mode, that compiles and executes each docunit individually.
In case of compilation error with the *simple* mode, the *single* mode is used as a fallback.
Therefore the precise compilation error is assigned to the correct docunit and the other docunits can still be tested.
For numbers, I used `string` that contains 65 simple docunits:
* before: 1m16.564s
* after: 0m1.664s (so a gain of 97.80%)
Close #947
Pull-Request: #1029
Reviewed-by: Alexandre Terrasa <alexandre@moz-code.org>
Reviewed-by: Alexis Laferrière <alexis.laf@xymus.net>