fixup some mono related issues and refactored how address family gets handled because linux does not support DualMode sockets.