Use PixelBuffer objects as the interface for encoders and decoders

This avoid a lot of unnecessary middle men. This also pushes the
responsibility for pixel format conversion into the encoders and
decoders. The new bufferFromBuffer() is used for direct conversion,
rather than PixelTransformer/TransImageGetter.
diff --git a/common/rfb/TightEncoder.h b/common/rfb/TightEncoder.h
index 8a58985..89d096b 100644
--- a/common/rfb/TightEncoder.h
+++ b/common/rfb/TightEncoder.h
@@ -33,7 +33,7 @@
 
 namespace rfb {
 
-  class TransImageGetter;
+  class PixelBuffer;
 
   struct TIGHT_CONF {
     unsigned int maxRectSize, maxRectWidth;
@@ -65,7 +65,7 @@
     virtual void setQualityLevel(int level);
     virtual void setFineQualityLevel(int quality, int subsampling);
     virtual int getNumRects(const Rect &r);
-    virtual void writeRect(const Rect& r, TransImageGetter* ig);
+    virtual void writeRect(const Rect& r, PixelBuffer* pb);
 
   private:
     bool checkSolidTile(Rect& r, rdr::U32* colorPtr, bool needSameColor);
@@ -123,7 +123,7 @@
     rdr::MemOutStream mos;
     rdr::ZlibOutStream zos[4];
     JpegCompressor jc;
-    TransImageGetter *ig;
+    PixelBuffer *pb;
     PixelFormat serverpf, clientpf;
 
     bool pack24;