Multiple timer insert/delete

### Problem description: ###
In  the case when timer due time was updated and new due time is before jobExecutor's execution, hintJobExecutor is called. Timer is fired immediately (due time is not taken into account). If the timer is repetition timer, we can get loop of timer inserts/deletes because timer is scheduled before jobExecutor execution again, until we reach time to execute JobExecutor.

### Solution proposal: ###
- see pull request.