server: Create new socket if $NVIM_LISTEN is used.

Return an error code from server_start().

Allow $NVIM_LISTEN_ADDRESS to contain a semi-colon (;) separated list of
addresses to use. Go with the first one that works. If binding returns
-EINVAL (socket in use) then add a new path to the environment variable
and use that.