sockets.tcp and sockets.tcpServer API implementations

Notes:
- `sockets.tcp.secure`, `sockets.tcp.setNoDelay`, and `sockets.tcp.setTimeToLive` not implemented yet

    - `sockets.tcp.setNoDelay` and `sockets.tcp.setKeepAlive` can be implemented by setting sockets option directly. I can implement them after we confirm that the UDP's `setMulticastTimeToLive ` and `setMulticastLoopbackMode` methods are ok.

- Some code duplications, I think we can refactor `create`, `close`, `diconnect`, `update`, and `setPaused` into a super class, such as, `TCPCommon` or `SocketsCommon`, in to udp's `iOSSocketCommon` plugin.

- Error codes are generating among different domains, such as, `errno` and `GCDAsycSocketErrDomain`. Can we return an extra parameter called `errorMessage` in failed callback? That would help users understand the error.