AODAAC challenge captcha

Solving #1214 and #1216 by adding a challenge (captcha) to AODAAC downloads.

This work also unifies AODAAC and Gogoduck controllers into AsyncDownloadController which will handle both and route to either service depending on the `aggregatorService` passed to it. I think now the test coverage is also better.
`fail` will fail the test, I just want this function to throw. And yes, that's a syntax error on my behalf, it should `throw Exception(...)`.