Expanding the data types, and direct NaN handling.

I needed to use a few more data types directly, and so changed the fetch code on the Java side of things.

As a result, the NaN handling became quite brittle so I indexed each null read and inserted them directly.

No idea if you'll be interested - if you are, it'll need to be tested on bigger data than I currently have, and the write side of things will need to be adjusted too. I just thought it would be more elegant to handle the data preparation completely on the java end. I did change the java version to 1.7...