Add a limit to the write queue length before dropping packets.

Hello,

This is a new implementation of PR #244.
It applies on the write queue as discussed in #244.
I consider that #244 can be closed.

New global options (copy/paste from collectd.conf) : 
```
WriteQueueLengthLimitHigh Num
WriteQueueLengthLimitLow Num
  Default value for high limit is 0 (no limit).  Default value for low
  limit is 50% of high limit.

  When the write queue size becomes bigger than the high limit,
  values will be dropped.  When the write queue size is between
  low and high, values may be dropped (depending on the queue
  size)

  If high limit is set to 0, there is no limit. This is the default.
  If high limit is set, but not low limit, low will be computed as
  50% of high.

  If you do not want to randomly drop values when the queue size
  is between low and high value, set the same value for low and
  high. When low=high and when the queue size is bigger, values
  are just dropped until the queue size becomes smaller.
```



Regards,
Yves