Improve wording for foreach/foreach_reverse over struct/class.

The current wording is a bit ambiguous and confusing to read, so I split up the docs for `foreach` vs. `foreach_reverse`.
Also, fixed some grammar issues.
And improved wording of docs for foreach with `opApply`, including fixing some inconsistent formatting for `opApply` and `opApplyReverse`.