Custom product data

Enable custom product data from the csv import/export tools. Required a good bit of refactoring from the previous style.
Hah, I totally pulled that out to `val` so I could replace that as well.. thanks for catching it~