Adjust build jobs based on cores available.

Automatically set the number of build jobs (make -j) based on the
number of cores available. The optimal setting is generally 2x the
number of cores. If we set this to an arbitrarily large value, it
tends to degrade performance and may even exhaust available memory
on machines with less than 8GB of RAM.