DON'T MERGE YET - voxel file corruption guards - partial fix to huge colored voxels in the sky

This fixes some error cases in parsing of corrupt or dubious voxel files. In some cases this will fix the random "large voxels in space" problem that has been plaguing us for a while.

One problem I discovered is that the original (like Jan 2013) voxel parsing code would read from a buffer but didn't check to see if the buffer contained enough bytes to keep reading. This would cause the parsing code to run off into memory and read in garbage. After much debugging, I determined that some of these corruptions were not happening on edits or on file saving (see note below) -- but instead on reading in the files. Sometimes reading the exact same file would produce different results (depending on the state of memory we overflowed into).

Note: there appears to still be a case that causes us to write these corrupt files. I am still tracking that down. But this code will at least handle the corrupt stream case better.
upgrading the voxel file format to support versioning and buffer breaks for more reliability