kernel/timeout: Fix announcement tick logic
kernel/timeout: Fix announcement tick logic

This was wrong in subtle ways.  In tickless mode it's possible to get
an announcement for multiple ticks at a time and have multiple
callbacks to execute that were technically scheduled at different
times.  We want to fix the current tick at the value represented by
the currently-executing callback's EXPIRATION (even if we missed it!),
so that any new timeouts it sets (c.f. a k_timer period) happen at the
right point, in phase with the expected series.  In single-tick mode
the code ends up the same always, so the bug wasn't visible.

Signed-off-by: Andy Ross <c70f9a6bf6ee0cd69c8af4ce5e6b131945769315@intel.com>

finikorg/zephyr,nashif/zephyr,nashif/zephyr,punitvara/zephyr,galak/zephyr,zephyrproject-rtos/zephyr,explora26/zephyr,punitvara/zephyr,finikorg/zephyr,zephyrproject-rtos/zephyr,galak/zephyr,galak/zephyr,punitvara/zephyr,Vudentz/zephyr,GiulianoFranchetto/zephyr,GiulianoFranchetto/zephyr,ldts/zephyr,ldts/zephyr,GiulianoFranchetto/zephyr,zephyrproject-rtos/zephyr,GiulianoFranchetto/zephyr,explora26/zephyr,nashif/zephyr,explora26/zephyr,nashif/zephyr,zephyrproject-rtos/zephyr,ldts/zephyr,Vudentz/zephyr,nashif/zephyr,punitvara/zephyr,GiulianoFranchetto/zephyr,ldts/zephyr,explora26/zephyr,zephyrproject-rtos/zephyr,galak/zephyr,Vudentz/zephyr,explora26/zephyr,Vudentz/zephyr,finikorg/zephyr,Vudentz/zephyr,Vudentz/zephyr,finikorg/zephyr,ldts/zephyr,galak/zephyr,punitvara/zephyr,finikorg/zephyr