Use N persistent GHCs instead of spawning 'ghc -c' for each module.

Some test results:

Fay
---

Single core:

'ghc-parmake (ghc -c)'     : 14.4 s
'ghc-parmake (ghc-server)' :  8.0 s
'ghc --make'               :  7.3 s

Single core (no-link):

'ghc-parmake (ghc -c)'     : 11.5 s
'ghc-parmake (ghc-server)' :  5.3 s
'ghc --make'               :  4.8 s

Two cores (no-link):

'ghc-parmake (ghc -c)'     : 8.9 s
'ghc-parmake (ghc-server)' : 4.5 s
'ghc --make'               : 4.8 s

Pandoc
------

Two cores (no-link):

'ghc-parmake (ghc -c)'     : 26.1 s
'ghc-parmake (ghc-server)' : 16.1 s
'ghc --make'               : 22.1 s
Unbreak the test suite.

Mutrec tests are still failing, though.