Profiled some similar code and found a major improvment

Did some profiling on reading binary data and found that for reading long arrays of bytes the io.Reader.Read() function was nearly always faster than binary.Read() because binary.Read() uses reflection to discover the length of the array which is expensive.

I'm using code similar to this in a minecraft related program i'm writing and it had a dramatic improvement in speed.