Reliable initialization of test source path

`testSourcePath` determines where we look for tests, relative to the `testRoot`
As `testSourcePath` and `testRoot` are mutable, all jar paths that depend on it
may change as well.

We don't use system properties to configure partest internally,
as their behavior depends on the security policy in place.
ant, for example, does not allow overwriting properties.

TODO: make all of this immutable, but that's pretty involved.
A lot of stuff depends on it (all the more reason to refactor)