Adding some features to proxy.h, and restructuring the macros.

New features are:
- Invoke a destructor on the worker thread.
- Make proxy wrapper for a non-refcounted object.
- Ability to use unique_ptrs (as arguments or return values).

These features are needed by this CL:
https://codereview.webrtc.org/2632613002/

BUG=None

Review-Url: https://codereview.webrtc.org/2628343003
Cr-Commit-Position: refs/heads/master@{#16151}
diff --git a/webrtc/api/datachannel.h b/webrtc/api/datachannel.h
index 19f95df..cdb2e62 100644
--- a/webrtc/api/datachannel.h
+++ b/webrtc/api/datachannel.h
@@ -272,6 +272,7 @@
 
 // Define proxy for DataChannelInterface.
 BEGIN_SIGNALING_PROXY_MAP(DataChannel)
+  PROXY_SIGNALING_THREAD_DESTRUCTOR()
   PROXY_METHOD1(void, RegisterObserver, DataChannelObserver*)
   PROXY_METHOD0(void, UnregisterObserver)
   PROXY_CONSTMETHOD0(std::string, label)
@@ -290,7 +291,7 @@
   PROXY_CONSTMETHOD0(uint64_t, buffered_amount)
   PROXY_METHOD0(void, Close)
   PROXY_METHOD1(bool, Send, const DataBuffer&)
-END_SIGNALING_PROXY()
+END_PROXY_MAP()
 
 }  // namespace webrtc