UdpSocket: Update constructor

This change adds the UdpSocket::Client interface (as discussed in previous CL
https://chromium-review.googlesource.com/c/openscreen/+/1754731) and updates
the UDP Socket constructor to make the following changes:
- Adds the Client to the constructor
- Adds the Task Runner to the constructor
The remaining changes are to support updating the constructor

Future changes will update the UdpSocket methods to use this Client and Task
Runner, but I want to do those as follow-up CLs to keep this one small

Change-Id: Icac05cf5825e4f84e4090d27849db41b6221a69a
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/1755645
Commit-Queue: Ryan Keane <rwkeane@google.com>
Reviewed-by: mark a. foltz <mfoltz@chromium.org>
Reviewed-by: Max Yakimakha <yakimakha@chromium.org>
diff --git a/platform/api/udp_socket.cc b/platform/api/udp_socket.cc
index 1bd96fd..46b3d9e 100644
--- a/platform/api/udp_socket.cc
+++ b/platform/api/udp_socket.cc
@@ -4,10 +4,14 @@
 
 #include "platform/api/udp_socket.h"
 
+#include "platform/api/task_runner.h"
+
 namespace openscreen {
 namespace platform {
 
-UdpSocket::UdpSocket() {
+UdpSocket::UdpSocket(TaskRunner* task_runner, Client* client)
+    : client_(client), task_runner_(task_runner) {
+  OSP_CHECK(task_runner_);
   deletion_callback_ = [](UdpSocket* socket) {};
 }