Implement SocketAddress class

Issue #167 on hold
Kaya Kupferschmidt
created an issue

SocketAddress (or EndPoint?) should encapsulate an Address and a Port