Adds a new type of Algorithm,
ReEntAlgorithm, which has a const execute method. It inherits from Algorithm.
To explicitly differentiate it from a regular Algorithm, a different signature is used,
StatusCode execute_R(const EventContext&) const. The regular execute() method is disabled via a final qualifier, and returns a StatusCode::FAILURE;
ReEntAlgorithm::getContext() overrides the default behaviour by returning the thread local EventContext.
A test method
bool isReEntrant() is also added to IAlgorithm.
When a re-entrant Algorithm is detected by the AlgResourcePool, only a single instance is created, but can be requested ad-infinitum.