Improve UNIX implementation of uv_guess_handle.

uv_guess_handle is currently squelching both sockets and fifos
on to the UV_NAMED_PIPE type. Rather than treating sockets
as UV_NAMED_PIPE, they are treated as UV_TCP.

This is not perfect as socket could in fact be UDP sockets,
not TCP sockets, however there does not appear to be a suitable
API for distinguishing between TCP and UDP sockets, and TCP
is still a better guess than simply named pipe.

Additionally, currently all other file descriptor types are
squelched to the UV_FILE type. Instead, only file descriptors
that are marked as regular files are treated as UV_FILE. All
other types (such as directories, character and block devices)
are now treated as UV_UNKNOWN_HANDLE.