Add synchronization to platform target project handler

The PptpTargetProjectHandler was called simultanously from several
threads. It was not really designed to cope with that (files are
checked for existence and then created if missing) which resulted
in sporadic exceptions (file already exist). The remedy was to
synchronize the public methods. It's reliable since the handler
is a singleton.
[GEP-26] Rebuilding big workspaces can take very long

I found two problems:

1. The PPBuildJob had no rule attached to it which means that the
   scheduler was allowed to run several such jobs in parallel. This
   commit fixes that problem by adding the workspace root as a rule
   effectively forcing all scheduled PPBuldJobs to execute in
   sequence.

2. The PPModuleMetadataBuilder scheduled a PPBuildJob in order to
   rebuild all module projects. This was the main culprit for this
   issue since that builder is in fact a project builder. A project
   builder should not schedule jobs to build several projects.
   Instead it must return an array of projects that may have been
   affected by the build so that the build manager can manage all
   build schedules.