Don't ask twice if MemoryBlocks can read mem.

They already check on Read32(), so just use that to iterate.
Use templates in FastRead/FastWrite to simplify.

DRY.
Switch a bunch of loops to range fors.
Merge pull request #212 from unknownbrackets/perf

Improve memory access performance a little