Stop requiring CConnection::serverInit() to be overridden

Add an explicit callback for subclasses to do their startup in. This
makes it easier to do proper ordering, and avoids mistakes.
diff --git a/common/rfb/CConnection.cxx b/common/rfb/CConnection.cxx
index a503a2c..805c8c3 100644
--- a/common/rfb/CConnection.cxx
+++ b/common/rfb/CConnection.cxx
@@ -335,6 +335,14 @@
   CMsgHandler::setExtendedDesktopSize(reason, result, w, h, layout);
 }
 
+void CConnection::serverInit()
+{
+  state_ = RFBSTATE_NORMAL;
+  vlog.debug("initialisation done");
+
+  initDone();
+}
+
 void CConnection::readAndDecodeRect(const Rect& r, int encoding,
                                     ModifiablePixelBuffer* pb)
 {
@@ -363,10 +371,8 @@
 {
 }
 
-void CConnection::serverInit()
+void CConnection::initDone()
 {
-  state_ = RFBSTATE_NORMAL;
-  vlog.debug("initialisation done");
 }
 
 void CConnection::fence(rdr::U32 flags, unsigned len, const char data[])