rfb: Fix struct-vs-class warnings

Clang doesn't like when struct and class are used to refer
to the same thing interchangeably.

Fixes all instances of:

In file included from /home/shade/dev/tigervnc/common/rfb/CConnection.cxx:29:
In file included from /home/shade/dev/tigervnc/common/rfb/CConnection.h:28:
/home/shade/dev/tigervnc/common/rfb/DecodeManager.h:35:3: error: class 'Exception' was previously declared as a struct [-Werror,-Wmismatched-tags]
  class Exception;
  ^
/home/shade/dev/tigervnc/common/rdr/Exception.h:32:10: note: previous use is here
  struct Exception {
         ^
/home/shade/dev/tigervnc/common/rfb/DecodeManager.h:35:3: note: did you mean struct here?
  class Exception;
  ^~~~~
  struct
/home/shade/dev/tigervnc/common/rfb/DecodeManager.h:43:3: error: class 'Rect' was previously declared as a struct [-Werror,-Wmismatched-tags]
  class Rect;
  ^
/home/shade/dev/tigervnc/common/rfb/Rect.h:68:10: note: previous use is here
  struct Rect {
         ^
/home/shade/dev/tigervnc/common/rfb/DecodeManager.h:43:3: note: did you mean struct here?
  class Rect;
  ^~~~~
  struct
diff --git a/common/rfb/Decoder.h b/common/rfb/Decoder.h
index 3840b3f..86ee4ef 100644
--- a/common/rfb/Decoder.h
+++ b/common/rfb/Decoder.h
@@ -27,9 +27,10 @@
 namespace rfb {
   class ConnParams;
   class ModifiablePixelBuffer;
-  class Rect;
   class Region;
 
+  struct Rect;
+
   enum DecoderFlags {
     // A constant for decoders that don't need anything special
     DecoderPlain = 0,