Improved compiler's benchmarking framework

The goal is to make our performance measurements more predictable and
reproducible:

- All programs are precompiled.
- All time measurements done with nanoTime.
- Each test takes at least 10x the execution time of the empty program.
- Largest and smallest values of each series are discarded. Mean and
standard deviation are computed on the remaining observations.
- All observations are now shown in the report.

Current situation: average 16.7x speed up.