Refactor of replanning code

- Use a DURATION parser when reading the 'query time to live' from the settings
- Inject a Clock instead of creating manually Dates for retrieving time in plan fingerprint
- Check txId on the candidate stale plan after having check the timestamp
- Inject statistics divergence threshold into the ExecutionPlanBuilder