Fast docunits

unitunit 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 sill be tested.

For number, I used `string` that contains 65 simple docunits:

* before: 1m16.564s
* after: 0m1.664s (so a gain of 97.80%)