Merge pull request #2934 from RosettaCommons/vmullig/disable_jd2
Adding a means for non-JD2 apps and protocols to avoid instantiating a JD2 JobDistributor
I noticed that the `simple_cycpep_predict` application, which uses its own job distributor that is not related to JD2 or JD3, was unnecessarily instantiating the JD2 job distributor (which was creating some problems in special cases -- large nstruct, for example). I traced this to the `ParsedProtocol` that I instantiate inside of `SimpleCycpepPredictApplication`, which invokes `protocol::jd2::jd2_used()` at several points, which determines whether JD2 is used by instantiating a JD2 job distributor and interrogating it.
To address this, this pull request adds an option to the `ParsedProtocol` constructor to disable JD2 access. This option is false by default, so that normal `ParsedProtocol` behaviour is unaffected except when JD2 access is explicitly disabled.
EDIT: At Rocco's suggestion, I abandoned the original approach and added a means of checking whether JD2's JobDistributor has already been instantiated, called in `jd2_used()`.