Remove some debugging code inadverently left in __fish_complete_cd.fish
Make io_data_t::fd const

In exec(), pipe_{write,read} no longer get reused.
Make io_fd_t members const, make close_fd bool
Make io_file_t members const
In exec(), only add and remove pipe_{read,write} when necessary
exec(): Fix a stupid crash. Remove commented debug code that became invalidated.
Clean up env_var_table_t. Switch from storing var_uni_entry_t* to var_uni_entry_t. Various other cleanups.
Clean up export_func
Fixed broken export_func

Fix for https://github.com/fish-shell/fish-shell/issues/573