CA-144743, CA-142066: xen-netback: Rx queue growth and carrier flapping

This set of three patches fix three related issues in netback.

1. The check in hard_start_xmit of the slot availability did not
   consider the number of packets that were already in the guest Rx
   queue.  This could allow the queue to grow without bound.

   The guest stops consuming packets and the ring was allowed to fill
   leaving S slot free.  Netback queues a packet requiring more than S
   slots (ensuring that the ring stays with S slots free).  Netback
   queue indefinately packets provided that then require S or fewer
   slots.

2. The Rx stall detection is not triggered in this case since the
   (host) Tx queue is not stopped.

3. If the Tx queue is stopped and a guest Rx interrupt occurs, netback
   will consider this an Rx purge event which may result in it taking
   the carrier down unnecessarily.  It also considers a queue with
   only 1 slot free as unstalled (even though the next packet might
   not fit in this).

The internal guest Rx queue is now limited by a byte length (to 512
KiB) and the (host) Tx queue is stopped and started based on this
limit.  This sets an upper bound of the number of packets that may be
on the internal queue.

skbs queued on the internal queue have an 'expires' time (set to the
current time plus the drain timeout).  The netback thread will detect
when the skb at the head of the queue has expired and use this as the
Rx stall indication (setting a suitable timeout when it schedules
instead of using a timer).  An Rx stall is now only cleared when
enough slots for a maximum sized packet are available.
CA-145482: xen-netback: increase maximum length of internal guest Rx queue

When the length of the internal guest Rx queue was limited to 128
pages (from effectively unlimited) it caused a small (~5%) regression
in aggregate throughput.

Increase the limit to allow a full queue to completely fill the guest
Rx ring.  This increase the amount of packet data that may be queued
per-VIF to 3 MiB (32x 64 KiB packets on the qdisc queue and 1 MiB in
the internal one).