Project properties: make classpaths and version selection readonly when necessary, closes #309

Resubmit of #451 to the fd5 branch.
We need the whole logic to identify is the project properties should be generally "read only because provided by an external tool". Maybe `project.HasExternalConfig`.