WIP: Additions to control re-entrancy of Algorithms and AlgTools
Atlas is already using re-entrant Algs in its AthenaBaseComps derived classes (AthReentrantAlgorithm), but the equivalent support is lacking on the Gaudi side since the re-entrancy MR stalled. We need to be able to identify at runtime if an Alg/Tool is re-entrant, so as to execute it in the proper way.
This MR adds methods to Algorithm and AlgTool to set/report re-entrancy. This status has to be modifiable at runtime, as an Algorithm does not know if its AlgTools are re-entrant until the end of initialize(), and if a re-entrant Algorithm uses a non-re-entrant Tool, it must be demoted to being non-re-entrant as well. We can benefit from the auto-retrieval of ToolHandles to propagate this information up to the parent Algorithm, and demote it as necessary.