Agg evicting queue

Deprecates #1282 and solves #1214 and #1216.

Behaviour is as follows:
 * Users are free to download
 * If an IP address is "abusing" us with too many aggregator downloads, it gets penalized with a captcha
 * `trustedClients` in configuration can always download without a captcha
 * `maxAggregatedDownloadsInTenMinutes` set to 2 by default (configurable)
These nested if/else blocks could be simplified. I think even taking out one level helps the readability.

e.g.:
<pre>
if (needsChallenge(ipAddress, session)) {
    return simpleCaptchaService.validateCaptcha(response)
}
else {
    return true
}
</pre>