Set `fork` to `true` in Build.scala

Found this option just now. This allows tests (and runs) to be run
on a separate JVM thus no longer deadlocking the system when several
new threads are created.
Added `awaitInitial` option to TestFunctions.simulate

This allows us to distinguish between tests that need to
await for the system being completely setup and those that
can be started right after initialisation.