exports cleanup

- remove the tuple response of get_export_files and hacks and return
  a class instead
- be more consistent with the return type (keep path/StringIO abstracted
  away to a single place)
- switch custom exports to use temp files instead of StringIO