Split decoders into a read and decode step

We need to split these steps up in preparation for multi-core
support. Reading needs to be done in a serial manner, whilst
decoding can be done in parallel.

This also involved a rather large cleanup of the Tight decoder.
diff --git a/common/rfb/DecodeManager.h b/common/rfb/DecodeManager.h
index 445601d..63a4120 100644
--- a/common/rfb/DecodeManager.h
+++ b/common/rfb/DecodeManager.h
@@ -21,6 +21,8 @@
 
 #include <rfb/encodings.h>
 
+namespace rdr { class MemOutStream; }
+
 namespace rfb {
   class CConnection;
   class Decoder;
@@ -38,6 +40,7 @@
   private:
     CConnection *conn;
     Decoder *decoders[encodingMax+1];
+    rdr::MemOutStream *bufferStream;
   };
 }