Added VOIP property to CFStream for long lived background sockets

Added VOIP socket capability. Using this you can have a COMET Style long-lasting HTTP connection which will wake your iPhone app when data is available.

This requires that the VOIP background mode be set in the info.plist. Apple do approve apps with the VOIP property set, even if they aren't strictly 'voip' apps.

This is preferable to using beginBackgroundTask as that has a timeout of 10 minutes before the background task is terminated.

With this property you can effectively hold the socket open indefinitely and iOS will wake the app up when there is activity detected on the socket, you then get 10-30 seconds to process the incoming data (and create a new listening socket)