Csv write API.

Added append and replace-rows (`With`) methods to CsvFile, and add constructor to generated csv row type.
Constructor has optional parameters for each column but string types unfortunately default to null rather than "".

As per #578. Not sure if this is the right API, guided by `Filter` etc methods. Other caveat, I wasn't able to get the proper defaults for optional parameters in the generated constructor so that's rather 'hacked in' to avoid a NRE on saving the CSV.