tcp_output(): maximize LSO frames size

Maximizing the LSO packet size we reduce the CPU usage both in
the Guest, and in HV.

This improves the netperf TCP_STREAM test performance when it's executed vs
the netserver on the same host where we run an OSv Guest (8GB RAM, 1 vCPU)
by the following margins:

message size    compared to origin
64              33.92%
128             36.08%
256             57.10%
512             111.92%
1024            186.63%
2048            260.38%
4096            214.22%
8192            93.80%
16384           43.14%
32768           13.44%
65536           4.76%

This patch introduces the following algorithm previously missing in the FreeBSD code
we are based on:
   - Aggregate as many bytes as possible before sending unless one of the below
     conditions:
      - There is a full Tx window of data when Tx window is greater than MSS.
      - There is a maximum TSO aggregation size of data pending (64K).
      - 2 clock ticks has passed since we've started the current TSO aggregation.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>