Accumulator refactor:

Stores a single copy of each request from different sources.
Firewalls identical requests.
Implements time based eviction policy.
Tests.
Would be preferable to consistently use either `std::begin/end` or the member equivalent I guess.