[netstack3] Skip GRO when there is only one frame

GRO can never coalesce anything when the receive batch holds a single
frame, so parsing it and building flow state is pure overhead. Use the
input iterator's size hint to detect this case and pass the frame
through untouched.

Make the network-device receive iterator an `ExactSizeIterator` so that
the size hint is actually available to GRO.

Bug: 452980285
Change-Id: I41f67b3ae592eb993ac206ae98bbc3556a6a6964
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1827852
Reviewed-by: Peter DeLong <pdelong@google.com>
Reviewed-by: Jeff Martin <martinjeffrey@google.com>
Commit-Queue: Eric Rinehart <erinehart@google.com>
Fuchsia-Auto-Submit: Eric Rinehart <erinehart@google.com>
2 files changed