Reliable initialization of test source path

`testSourcePath` determines where we look for tests, relative to the `testRoot`
After `testSourcePath` has been read, it cannot be changed.

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 truly immutable, but that's pretty involved.
A lot of stuff depends on it (all the more reason to refactor)