Custom product data

Enable custom product data from the csv import/export tools. Required a good bit of refactoring from the previous style.
@twymer it's `WorkbookJSONReader` if you want to take a look. Reads in your workbook assuming a given format for headers (which supports a standard syntax for nested data like lists and dicts, at least one level deep anyway) and converts it to JSON, so all your function has to do is process the JSON.