Merge pull request #2395 from RosettaCommons/roccomoretti/jd2ectomy
Laying the groundwork for a jd2-ectomy
A number of people have made use of the JD2 system when writing their Movers, etc. -- that is, they're not implementing something that has a direct dependence on JD2, but use various convenience functions in JD2 which allows you get various job-running data (e.g. output name) This has worked for the past decade or so, but now that JD3 is staring us in the face, it would be good to move such code off of a strict JD2-dependency.
This PR goes through and, as much as reasonably possible, attempts to remove the direct dependence on JD2 Jobs, JobDistributors, JobOutputters, etc. from everywhere that's not intimately tied to the JD2 system.
The form this takes in the current PR is that a number of utility functions have been added to src/protocols/jd2/util.hh, so instead of doing something like protocols::jd2::JobDistributor::get_instance()->current_job()->input_tag() you can do protocols::jd2::current_input_tag(). While the implementation of protocols::jd2::current_input_tag() still has the same reliance on the JD2 system, it serves as a single point which can be generalized when we come up with a JD2-independent system for passing around the input tag. (It should also be easier to mode it to a different namespace.)