unix: don't allocate buffers for empty UDP packets

When we receive a UDP packet of size zero, discard the packet by
reading it into a scratch buffer instead of allocating a real buffer.