vconn-unix: Unlink Unix sockets for vconns at close and free memory.
The make_unix_socket() function that Unix vconns use to create their
bindings calls fatal_signal_add_file_to_unlink() to make sure that the
binding socket gets unlinked from the file system if the process is killed
by a fatal signal. However, this doesn't happen until the process is
actually killed, even if the vconn that owns the socket is actually closed.
This wasn't a problem when the vconn-unix code was written, because all
of the unix vconns were created at process start time and never destroyed
during the normal process runtime. However, these days the vswitch can
create and destroy unix vconns at runtime depending on the contents of its
configuration file, so it's better to clean up the file system and free
the memory required to keep track of these sockets.
This commit makes unix vconns and pvconns delete their files and free
the memory used to track them when the (p)vconns are closed.
This is only a very minor leak most of the time.
Bug #1817.