Turn find_or_insert_uid's buffer into an LRU cache

If we see a duplicated packet, that means the server missed (or raced with) our
CLIENTACK, which means we should update the timestamp on the entry to reset the
aging.
Bump find_or_insert_uid's time limit

Basing it on krb4's CLOCK_SKEW value doesn't make any sense. We pick 900
because it is just over 128 + 256 + 512, the longest group of three timeouts in
the retransmit schedule used by the zephyrd. This allows us to miss two packets
in a row and still be fine.