Split PACKET_RECYCLE() into PacketInitialize() and PacketCleanup().

This allows doing the cleanup step before freeing a Packet and then
the initialize step when allocating a packet. This is better for
caching.