compiler: refactor, move config parsing to separate module.
add environment to run tests on different permutations of compiler settings.
Merge remote-tracking branch 'origin'