Initial support for parallel 'ghc --make'

Implements the design described in #976 (a single coordinating `cabal install` process + a semaphore + multiple `setup build` processes).

One problem with the current implementation is that when multiple `setup build` processes are started simultaneously, one of them can take all available cores, forcing the remaining ones to wait. We should be able to fix that by guaranteeing that each process will have at least one core at its disposal.

Not implemented: parallel building of profiling/dynamic variants.

Depends on #1520.