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
Why do you need to override hashCode and equals? In the context of ptrans, using object indentity is enough to find instances in the Fifo, right?