Add error return to ForEach callback
Split ForEach into ForEachBytes and ForEachReader