added scene serialization with binary files - can precompute a scene (triangles, tree, etc.) into binary files, then load the scene using the binary files - dramatic improvements when loading large scenes for multiple renders.  Should notice no difference if you don't change anything.
added some error checking by blocking until kernel finishes before performing the blocking read.  separates errors in the kernel from errors while reading.