Simplify ID allocation so that we don't loop over all IDs

Instead, we allocate a 256-entry array of random IDs (all unique)
and gradually use them.  When the array is empty, we re-fill it.
Simplify "proxy anew" code

Now that the packet list re-uses Ids less often