* Read the given file and break it up into chunks, putting the number * of chunks and their info in *num_chunks and **chunks, * respectively. Returns a malloc'd block of memory containing the * contents of the file; various pointers in the output chunk array * will point into this block of memory. The caller should free the * return value when done with all the chunks. Returns NULL on * f