Use flyweight for DataRowReader
Replace binary.Read

It does memory allocs that can be avoided by passing a slice directly to
binary.BigEndian.*