More accurate timing through more iterations

Short benchmarks have more noisy jitter. Make tests take around 1-2s to
reduce the variance between runs.
The starting iteration time will be different than the others; doesn't make sense to me to do math on it.

Wdyt about something like this:

```lua
local function run_filter(min_time, packets, pred)
   local start = utils.now()
   local end = start
   local seen, matched = 0
   iterations = 0
   while end - start < min_time do
      seen, matched = filter(packets, pred)
      end = utils.now()
      iterations = iterations + 1
   end
   return seen, matched, (end - start)/iterations
end
```

then for warmup doing run_filter for 0.5 seconds (say) and then for measurement doing it for 1.0 seconds (say).  Seems to me to capture the properties we want more than an iteration-counting approach.  WDYT?