Determine if a TCP port is open
Summary:
Create SocketAddress as a representation of a protocol, IP, port set.
Make IP, IPv4 and IPv6 a hierarchy of object representing IP addresses.
Use the Socket extension, but fallback to fsockopen if it's not available.
Use case: cache library keruald/cache tests suite needs to test if
a memcached or Redis instance is available on localhost to run those tests.
Test Plan: Tested on keruald/cache draft implementation
Reviewers: dereckson
Reviewed By: dereckson
Differential Revision: https://devcentral.nasqueron.org/D3230