Clean up RemoveBatch -> RemoveItem code in ProductionQueue.
- Rename RemoveBatch to RemoveItem.
- Refactor that function. (Don't clear the cached entities when *any* item is removed.)
Fixes the bug that the training is still blocked when a tech is the next in the queue and the blocking item is removed.
Based on a patch by: @Polakrity
Differential revision: D1843
Comments by: @Angen, @bb