refactor _generate_items_for_subtask not to chunk queries
use django's iterator methor for querysets
remove bulk email query settings
use read_replica if available, since this is read-only
update changelog
When creating an instructor task total_num_items may change between the
time it and the number of subtasks is calculated and the time the
subtasks are actually queued (all of this cannot happen in one transaction).
In such a case the extra items are distributed among the subtasks of the
last query.
LMS-2090