Add PCH for everything except QVM and nexe

* Compile libraries for which we have the source in their own static lib
* Make the -include foo.pch option a target option instead of a source file one
* Detect if a target needs to be compiled with -fPIC (shared libs)