Socket updates: adding support for address strings and other improvements

*This pull request is work in progress.*

An attempt to normalise function naming (#199) and allow creation of sockets using address strings.