Prepare for UDPSocket subclassing: Create copy

* As no functions in UDPSocket are marked virtual, subclassing is difficult. Hence, this is an almost identical copy of INET's UDPSocket class with all member functions defined as virtual
* One addition: markMessageReceived(), needed for subclass later on