Make Observers into a templated class

Review-Url: https://codereview.chromium.org/2311343003
diff --git a/fpdfsdk/cpdfsdk_annot.cpp b/fpdfsdk/cpdfsdk_annot.cpp
index 353edaa..738508f 100644
--- a/fpdfsdk/cpdfsdk_annot.cpp
+++ b/fpdfsdk/cpdfsdk_annot.cpp
@@ -22,39 +22,10 @@
 
 }  // namespace
 
-CPDFSDK_Annot::Observer::Observer(CPDFSDK_Annot** pWatchedPtr)
-    : m_pWatchedPtr(pWatchedPtr) {
-  (*m_pWatchedPtr)->AddObserver(this);
-}
-
-CPDFSDK_Annot::Observer::~Observer() {
-  if (m_pWatchedPtr)
-    (*m_pWatchedPtr)->RemoveObserver(this);
-}
-
-void CPDFSDK_Annot::Observer::OnAnnotDestroyed() {
-  ASSERT(m_pWatchedPtr);
-  *m_pWatchedPtr = nullptr;
-  m_pWatchedPtr = nullptr;
-}
-
 CPDFSDK_Annot::CPDFSDK_Annot(CPDFSDK_PageView* pPageView)
     : m_pPageView(pPageView), m_bSelected(FALSE) {}
 
-CPDFSDK_Annot::~CPDFSDK_Annot() {
-  for (auto* pObserver : m_Observers)
-    pObserver->OnAnnotDestroyed();
-}
-
-void CPDFSDK_Annot::AddObserver(Observer* pObserver) {
-  ASSERT(!pdfium::ContainsKey(m_Observers, pObserver));
-  m_Observers.insert(pObserver);
-}
-
-void CPDFSDK_Annot::RemoveObserver(Observer* pObserver) {
-  ASSERT(pdfium::ContainsKey(m_Observers, pObserver));
-  m_Observers.erase(pObserver);
-}
+CPDFSDK_Annot::~CPDFSDK_Annot() {}
 
 #ifdef PDF_ENABLE_XFA