Refactor RunningStage routing mechanism
🚀 Feature
Motivation
Currently, tes / predict function is relying on an ENV variable to set testing to True.
The logic should be simplified and cleaned up.
Pitch

Additional context

No we can't in the current state of the codebase. Trainer.predict relies on self.trainertesting to be True for routing the code in the test part of the evaluation loop, and if we set self._running_stage = RuningStage.PREDICTING, it would route to validation and we won't gather the prediction.
I plan to properly refactor routing in a follow up PR as it is currently a big mess.

Originally posted by @tchaton in #5579 (comment)