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/VNCServerST.h b/common/rfb/VNCServerST.h
index ede5223..1e055dd 100644
--- a/common/rfb/VNCServerST.h
+++ b/common/rfb/VNCServerST.h
@@ -177,12 +177,6 @@
     // Blacklist to be shared by multiple VNCServerST instances.
     void setBlacklist(Blacklist* bl) {blHosts = bl ? bl : &blacklist;}
 
-    // setEconomicTranslate() determines (for new connections) whether pixels
-    // should be translated for <=16bpp clients using a large lookup table
-    // (fast) or separate, smaller R, G and B tables (slower).  If set to true,
-    // small tables are used, to save memory.
-    void setEconomicTranslate(bool et) { useEconomicTranslate = et; }
-
     // setKeyRemapper() replaces the VNCServerST's default key remapper.
     // NB: A null pointer is valid here.
     void setKeyRemapper(KeyRemapper* kr) { keyRemapper = kr; }
@@ -242,8 +236,7 @@
 
     QueryConnectionHandler* queryConnectionHandler;
     KeyRemapper* keyRemapper;
-    bool useEconomicTranslate;
-    
+
     time_t lastUserInputTime;
     time_t lastDisconnectTime;
     time_t lastConnectionTime;