gst/tcp/: Small cleanups in fdset.c
gst/tcp/: Small cleanups in fdset.c

Original commit message from CVS:
* gst/tcp/gstfdset.c: (gst_fdset_fd_has_closed),
(gst_fdset_fd_has_error), (gst_fdset_fd_can_read),
(gst_fdset_fd_can_write), (gst_fdset_wait):
* gst/tcp/gstmultifdsink.c: (gst_client_status_get_type),
(gst_multifdsink_init), (gst_multifdsink_add),
(gst_multifdsink_remove), (gst_multifdsink_get_stats),
(gst_multifdsink_remove_client_link),
(gst_multifdsink_client_queue_buffer),
(gst_multifdsink_handle_client_write),
(gst_multifdsink_recover_client), (gst_multifdsink_handle_clients),
(gst_multifdsink_close), (gst_multifdsink_change_state):
* gst/tcp/gstmultifdsink.h:
* gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init),
(gst_tcpserversink_removed):
Small cleanups in fdset.c
Use a hastable to map fd to the client structure for faster
lookup in _remove and get_stats.
Added virtual function to close the fds.
Handle clients even when the select/poll call was unblocked because
of a command.
Implement syncing to keyframe in the recovery procedure.

prajnashi/gst-plugins-ugly,alessandrod/gst-plugins-ugly,collects/gst-plugins-ugly,matsu/gst-plugins-ugly,ahmedammar/platform_external_gst_plugins_ugly,Distrotech/gst-plugins-ugly,krieger-od/gst-plugins-ugly,ylatuya/gst-plugins-ugly,PPCDroid/external-gst-plugins-ugly,Distrotech/gst-plugins-ugly,alessandrod/gst-plugins-ugly,surround-io/gst-plugins-ugly,GrokImageCompression/gst-plugins-ugly,alessandrod/gst-plugins-ugly,freedesktop-unofficial-mirror/gstreamer-sdk__gst-plugins-ugly,Kurento/gst-plugins-ugly,matsu/gst-plugins-ugly,fluendo/gst-plugins-ugly,freedesktop-unofficial-mirror/gstreamer__gst-plugins-ugly,matsu/gst-plugins-ugly,prajnashi/gst-plugins-ugly,freedesktop-unofficial-mirror/gstreamer__gst-plugins-ugly,cablelabs/gst-plugins-ugly,Lachann/gst-plugins-ugly,GrokImageCompression/gst-plugins-ugly,GrokImageCompression/gst-plugins-ugly,shelsonjava/gst-plugins-ugly,surround-io/gst-plugins-ugly,jpakkane/gstreamer-plugins-ugly,StreamUtils/gst-plugins-ugly,StreamUtils/gst-plugins-ugly,krieger-od/gst-plugins-ugly,ahmedammar/platform_external_gst_plugins_ugly,Lachann/gst-plugins-ugly,ylatuya/gst-plugins-ugly,freedesktop-unofficial-mirror/gstreamer-sdk__gst-plugins-ugly,shelsonjava/gst-plugins-ugly,jpakkane/gstreamer-plugins-ugly,Lachann/gst-plugins-ugly,freedesktop-unofficial-mirror/gstreamer-sdk__gst-plugins-ugly,sebras/gst-plugins-ugly,ahmedammar/platform_external_gst_plugins_ugly,jpakkane/gstreamer-plugins-ugly,Kurento/gst-plugins-ugly,knuesel/gst-plugins-ugly,Kurento/gst-plugins-ugly,GStreamer/gst-plugins-ugly,fluendo/gst-plugins-ugly,GStreamer/gst-plugins-ugly,jar1karp/gst-plugins-ugly,Distrotech/gst-plugins-ugly,jar1karp/gst-plugins-ugly,krieger-od/gst-plugins-ugly,jahrome/gst-plugins-ugly,Distrotech/gst-plugins-ugly,collects/gst-plugins-ugly,PPCDroid/external-gst-plugins-ugly,krieger-od/gst-plugins-ugly,GStreamer/gst-plugins-ugly,jar1karp/gst-plugins-ugly,collects/gst-plugins-ugly,StreamUtils/gst-plugins-ugly,sebras/gst-plugins-ugly,knuesel/gst-plugins-ugly,reynaldo-samsung/gst-plugins-ugly,knuesel/gst-plugins-ugly,sebras/gst-plugins-ugly,collects/gst-plugins-ugly,jahrome/gst-plugins-ugly,reynaldo-samsung/gst-plugins-ugly,Distrotech/gst-plugins-ugly,reynaldo-samsung/gst-plugins-ugly,fluendo/gst-plugins-ugly,prajnashi/gst-plugins-ugly,jahrome/gst-plugins-ugly,cablelabs/gst-plugins-ugly,ylatuya/gst-plugins-ugly,surround-io/gst-plugins-ugly,PPCDroid/external-gst-plugins-ugly,shelsonjava/gst-plugins-ugly,cablelabs/gst-plugins-ugly,matsu/gst-plugins-ugly,freedesktop-unofficial-mirror/gstreamer__gst-plugins-ugly