Fix Linux support.

The 'nproc' executable behaves differently under Linux and Darwin
(i.e. sends the result to stdout on Linux, stderr on Darwin).

A previous patch made the computation of PARALLEL incorrect on Linux,
this fixes the problem.

As long as we're using platform-specific code, Use something a
little more reliable to compute the number of cores.