Remove destroy functions

These are just confusing and obfuscating. Do a normal delete of
these objects instead.
diff --git a/common/rfb/CConnection.cxx b/common/rfb/CConnection.cxx
index ce489b1..d7a9d85 100644
--- a/common/rfb/CConnection.cxx
+++ b/common/rfb/CConnection.cxx
@@ -49,7 +49,8 @@
 CConnection::~CConnection()
 {
   setFramebuffer(NULL);
-  if (csecurity) csecurity->destroy();
+  if (csecurity)
+    delete csecurity;
   delete reader_;
   reader_ = 0;
   delete writer_;
diff --git a/common/rfb/CSecurity.h b/common/rfb/CSecurity.h
index 3fedc50..4bf4b38 100644
--- a/common/rfb/CSecurity.h
+++ b/common/rfb/CSecurity.h
@@ -46,7 +46,6 @@
   public:
     virtual ~CSecurity() {}
     virtual bool processMsg(CConnection* cc)=0;
-    virtual void destroy() { delete this; }
     virtual int getType() const = 0;
     virtual const char* description() const = 0;
     virtual bool isSecure() const { return false; }
diff --git a/common/rfb/SConnection.cxx b/common/rfb/SConnection.cxx
index 6b81055..ae43254 100644
--- a/common/rfb/SConnection.cxx
+++ b/common/rfb/SConnection.cxx
@@ -64,7 +64,8 @@
 
 SConnection::~SConnection()
 {
-  if (ssecurity) ssecurity->destroy();
+  if (ssecurity)
+    delete ssecurity;
   delete reader_;
   reader_ = 0;
   delete writer_;
diff --git a/common/rfb/SSecurity.h b/common/rfb/SSecurity.h
index 6da63c3..0280574 100644
--- a/common/rfb/SSecurity.h
+++ b/common/rfb/SSecurity.h
@@ -54,7 +54,6 @@
   public:
     virtual ~SSecurity() {}
     virtual bool processMsg(SConnection* sc)=0;
-    virtual void destroy() { delete this; }
     virtual int getType() const = 0;
 
     // getUserName() gets the name of the user attempting authentication.  The