Restore the InetSocketAddress interface

The string and port approach requires the string to processed on every
connect. Now we instead intentionally support resolving addresses created
using InetSocketAddress.createUnresolved().

This reverts commit 1696871e82a61811e3c6b39a3a52a24f900894ca.