io/read-dataset now converts empty fields => nil, or user-supplied value.

Also, refactoring of the function for clarity.
Merge pull request #182 from michaelochurch/missing-data

io/read-dataset now converts empty fields => nil, or user-supplied value...