Split tasks from ProductionQueue.
The task of the production queue should first and foremost be that; a queue for production items.
Hence, the specifics of training/researching are delegated to specific components.
As a side effect, this improves the test coverage and fixes:
- Resource not refunding when hitting the entity limit. Introduced in r25753 / rP25753.
- Autoqueue changing when unable to spawn. Introduced in r25779 / rP25779.
Modders can change their templates using https://code.wildfiregames.com/P256.
Differential revision: https://code.wildfiregames.com/D4333
Fixes: #6363
Comments by: @Silier
Refs. #6364