Correctly clamp packets with trailing garbage

This fixes 170736db76139ed9fff9dbf70a55d4ba4f25d9bd which never actually
worked. It failed to update packet_len, so we computed the Z_InputQ's
header_len wrong and failed to truncate the garbage or did really bizarre
things in the case of packet reassembly.
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.