Merge pull request #2564 from RosettaCommons/aleaverfay/relax_jd3
relax JD3 / fiasco! cleanup
Writing the beginning of a relax_jd3 application.
There are some outstanding issues that mean not all of the functionality in (JD2) relax is available in relax_jd3 -- at least, not to the Multithreaded job distributor in JD3. There is only one reason, but the reason has metastasized throughout the code: global data. Symmetry relies heavily on global data (namely whether symmetry is on or off; you can have different symmetries simultaneously), and electron-density refinement relies heavily on global data. You cannot relax protein A into density map A and protein B into density map B because of this. I think there are several other pieces of global data that need rooting out.
This PR also fixes a static-initialization-order fiasco problem identified by AddressSanitizer. The big change is that BOGUS_ATOM_ID and the other BOGUS globals are no longer a globals, but instead a static methods of their respective classes (e.g. core::id::AtomID::BOGUS_ATOM_ID()).
This also ensures the proper initialization of the global constants in numeric/constants.hh by putting them into the .hh file -- this was only possible with C++11, so, another win for C++11.