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.
Calling 'remove()' returns the value as it removes it. So line 22 could be changed to `def challengeResponse = params.remove('challengeResponse')` and line 28 could be taken out.