Apply Rule of Zero to old-style uncopyable classes in core/ and protocols/ (#697)
## Summary
Modernize 31 headers across `core/` and `protocols/` that used the
pre-C++11 idiom of declaring (but not defining) private copy constructor
and assignment operator to forbid copies. The link-error-as-enforcement
trick is fragile (silent breakage if anyone defines them in the same
translation unit, confusing diagnostics on misuse, and falsely implies
the class has a copy constructor).
Two flavours of fix applied:
1. **Stand-alone non-copyable classes** — InteractionGraphBase
node/edge/graph family (9 files, 23 classes total),
FlexbbInteractionGraph (2 classes), JobDigraph (2 classes),
AtomTreeCollection's ResidueAtomTreeCollection, Matcher, and
MonteCarlo's `operator=`: replace the private unimplemented declarations
with public `= delete`. Where the old assignment took a non-const
reference or returned `T const &` (a C++03 idiom holdover), the
modernized signatures take `T const &` and return `T &`.
2. **Singleton-derived factories** (`utility::SingletonBase` children) —
`RotamerLibrarySpecificationFactory`,
`SingleResidueRotamerLibraryFactory`, `RotamerLibrary`, `CenrotLibrary`,
plus `DockingHighResFactory`, `EvaluatorFactory`, `JobInputterFactory`,
`JobOutputterFactory`, `LoopMoverFactory`,
`LoopRefineInnerCycleFactory`, `LoopsDefinerFactory`, `GridFactory`,
`PoseSelectorFactory`, `RotamerRecoveryFactory`,
`AssemblyRequirementFactory`, `AssemblyScorerFactory`: simply drop the
redundant unimplemented copy/assignment declarations. `SingletonBase`
already `= delete`s its own copy/assignment, which transitively deletes
the derived class's implicit versions, so the extra lines were noise.
No behaviour change: copy/assignment attempts that were link errors
before are now compile errors, which is the intended diagnostic-quality
improvement. Debug build passes clean.