Refactored PathInputPanel to allow subclasses to override aspects of path validation.
Note that some aspects of this class don't make a lot of sense:
* why does it use TargetPanel message strings?
* why does it contain the installation modification check? Surely not applicable for JDKPathPanel