relay: parse and reproduce aggregate statements
aggregator: remove destination (send to)

When aggregations would be sent to a destination directly, we would lose
all kinds of possibilities to do our flexible routing like we do for
other produced metrics (such as splitting, multi-dc replication, etc.)
collector: make sure statistics get submitted asap
collector: fix debug mode
implemented first shot at aggregator
server_queuereader: don't lockup on error + data

No point in waiting for data to be sent if last time we tried resulted
in a connection failure.
server_queuereader: avoid endless error spam in the log
queue_enqueue: fix buffer overrun case

Fix thinko which caused the queue to become larger than it was supposed
to be in case the read pointer was not at the current write pointer
(e.g. queue wasn't full yet) but the write pointer at the end of the
buffer.
queue_putback: allow to undo a queue_dequeue()
server_queuereader: use queue_putback() on failures

Putting entries we retrieved (but failed to be sent) at the end of the
queue, actually changes the order and might cause expiration of more
recently submitted entries before the re-submitted one, which is
slightly bad.  Hence, if there is space, put back the entry at the front
of the queue, such that it is read and expired first.
queue_putback: fix useless statement (make wrapping work)