[include] Explicitly handle some constructors and operators

This CL attempts to fix some errors when compiling
dawn with `autoninja all` and `is_debug = false`.

```
error: definition of implicit copy assignment operator for 'WaitableEvent' is deprecated because it has a user-declared destructor [-Werror,-Wdeprecated-copy-with-dtor]

error: constructor for 'dawn::native::(anonymous namespace)::MemoryDumpMock' must explicitly initialize the base class 'MemoryDump' which does not have a default constructor
```

Bug:None
Change-Id: Ib042df79c87000a1797af0b3b63e1e4029c2b391
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/207634
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Reviewed-by: Jiawei Shao <jiawei.shao@intel.com>
Commit-Queue: Jiawei Shao <jiawei.shao@intel.com>
diff --git a/include/dawn/native/DawnNative.h b/include/dawn/native/DawnNative.h
index 61ee842..79376d6 100644
--- a/include/dawn/native/DawnNative.h
+++ b/include/dawn/native/DawnNative.h
@@ -284,6 +284,8 @@
     static const char kUnitsBytes[];    // Unit name to represent bytes.
     static const char kUnitsObjects[];  // Unit name to represent #objects.
 
+    MemoryDump() = default;
+
     virtual void AddScalar(const char* name,
                            const char* key,
                            const char* units,
@@ -291,6 +293,9 @@
 
     virtual void AddString(const char* name, const char* key, const std::string& value) = 0;
 
+    MemoryDump(const MemoryDump&) = delete;
+    MemoryDump& operator=(const MemoryDump&) = delete;
+
   protected:
     virtual ~MemoryDump() = default;
 };
diff --git a/include/dawn/platform/DawnPlatform.h b/include/dawn/platform/DawnPlatform.h
index fd22c2a..71ebb27 100644
--- a/include/dawn/platform/DawnPlatform.h
+++ b/include/dawn/platform/DawnPlatform.h
@@ -73,6 +73,10 @@
   public:
     WaitableEvent() = default;
     virtual ~WaitableEvent() = default;
+
+    WaitableEvent(const WaitableEvent&) = delete;
+    WaitableEvent& operator=(const WaitableEvent&) = delete;
+
     virtual void Wait() = 0;        // Wait for completion
     virtual bool IsComplete() = 0;  // Non-blocking check if the event is complete
 };
@@ -83,6 +87,10 @@
   public:
     WorkerTaskPool() = default;
     virtual ~WorkerTaskPool() = default;
+
+    WorkerTaskPool(const WorkerTaskPool&) = delete;
+    WorkerTaskPool& operator=(const WorkerTaskPool&) = delete;
+
     virtual std::unique_ptr<WaitableEvent> PostWorkerTask(PostWorkerTaskCallback,
                                                           void* userdata) = 0;
 };