Refactored parsing of input data

- Split dataio into separate functions for parsing and saving
- Allow user to specify a variable number of keys
- Created classes for parsing and preprocessing to avoid conditional
statements within map
Added image and text writing to saveout

- Split dataio into separate functions for saving and parsing data
- Added options for writing data to images, including automatic
rescaling
- Added options for writing data to text