Clean-ups in the tests:

* the build scripts now fail properly on build error
* the final test to check wgether compiler env variables works is more robust
Really fix #349 and #262

We really need to use files here, as the parent will not consider running childs and will only look for their termination before eventually reading the marshaled error. If we use a normal pipe, this could easily to lead to dead-locks, as pointed out by @tuong.

This fix re-add the initial temporary file (but this time, they are simply in ~/.opam/logs and really unique).

So this commit partially revert 92c8d8501b70bd1ffe85b4e3cb4d1c3c8bb48a98, 7fcfe9c5ae746fe694f9fcab4d3f0fff3db84f42 and 006293e1f8bfb317dab59308cabe4363c6b67675. Partially because it keeps the good idea of truncating the output in case either stderr or stdout are too long.

So this commit greatly improve the user experience when there is a compilatin error. The location of full logs is showed in case the truncated lines are not enough to solve the problem.