Add a fifo to buffer collected data when the server is not available

This commit adds a `BoundMetricsFifo`, that has a certain capacity to store metrics. When it gets full, old ones are evicted.
The `RestForwardingHandler` makes use of this fifo to buffer data and only removes metrics from the fifo, when the http response code of the server is 200 or 204
So you want to protect against two metrics from the same source with the same timestamp? Mmm, ok