Mark fxcrt::RetainPtr<>::m_nRefCount as mutable.

Similar to base, this will allow us to have RetainPtrs to objects
that are otherwise const apart from the ref counts. In turn, make
Retain() and Release() const, which leads to the odd situation where
we delete a const |this| (but legal in C++ for a variety of reasons).

Change-Id: I975628c5c60e6337afd496ade2371a4c1b69e84a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/58191
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxcrt/retain_ptr.h b/core/fxcrt/retain_ptr.h
index b7cc11b..688a622 100644
--- a/core/fxcrt/retain_ptr.h
+++ b/core/fxcrt/retain_ptr.h
@@ -115,14 +115,14 @@
   Retainable(const Retainable& that) = delete;
   Retainable& operator=(const Retainable& that) = delete;
 
-  void Retain() { ++m_nRefCount; }
-  void Release() {
+  void Retain() const { ++m_nRefCount; }
+  void Release() const {
     ASSERT(m_nRefCount > 0);
     if (--m_nRefCount == 0)
       delete this;
   }
 
-  intptr_t m_nRefCount = 0;
+  mutable intptr_t m_nRefCount = 0;
 };
 
 }  // namespace fxcrt