cl/429364215: Fix flaky AgentTest.MsgTimerExpired
cl/429364215: Fix flaky AgentTest.MsgTimerExpired

Prior to this change there was a race between read(timerfd) in 'timer_callback'
and resetting the timer in the main thread. We handled the symptom of the race
by checking for EAGAIN without addressing the mismatch between 'msg' and 'ticks'(basically we accounted for the msg but didn't account for lost ticks).

Fix this by pretending that final TIMER_EXPIRED msg never even showed up as
long as we can guarantee the race. We do this by closing the timer_fd in the
main thread and checking that the read(fd) fails due to EBADF.

Also get rid of the 'EXPECT_THAT(ticks[cpu.id()], Ge(kDelay / kPeriod))'
check. For the same reason described above this can fire because one or
more ticks were not accounted for due to the race. It's not a major loss
because the goal is not to verify correctness of timerfd.

TESTED=thousands of successful iterations of MsgTimerExpired in virtme.

google/ghost-userspace,google/ghost-userspace,google/ghost-userspace,google/ghost-userspace