Transform lists:reverse(X) ++ Y to lists:reverse(X, Y)

It's 10-50% faster (typically 25-40%) and halves memory GC pressure.
It has small effect to overall performance (26.9s vs 28.7s in proper_tests)
but low hanging fruit and just bothers me.
Simplify zip/2 function.

Tail call recursion + lists:reverse/1 is no longer fastest on all
platforms.
Process parallel job results in same order.

First spawned processes should be scheduled in same order and also they
results or fails will be in same order in message queue. This code is
simpler and makes more efficient processing of results or killing in error
case.
Simplify add_exports/1 transformation.