ENH: avoid more thread save/restores for small iteration counts

Releasing the GIL is not worthwhile for small loop iteration counts.
This was previously only done for non-reduction ufuncs.
Do this now also for reductions and assignments.
Improves performance of small reductions by about 10% as they avoid two
save and restores.
Merge pull request #4200 from juliantaylor/thread-thresh

ENH: avoid more thread save/restores for small iteration counts