Merge the "V3" message classes into the normal ones

We have no need for this abstraction so let's keep things simple.
Move serialisation of pseudorects into separate functions

Keeps the code clearer.
Remove partial update functionality

Get rid of the ability of encoders to only send part of the
rectangle they are given as we don't want partial updates
anyway.
Avoid reader/writer duplication in every encoder/decoder
Handle CopyRect like any other encoding

Avoids having to special case things. Keeps the code simpler.
Consolidate the different palette handler implementations
Push encoding specific formats into the encoders and decoders

Keep the generic stream classes clean and general.
Get rid of unnecessary macros as they are only ever set to a single thing
Remove full support for colour maps

Gets rid of a loooot of code and complexity.

Colour map clients are still supported through an
automatically generated map, but we lose the ability to
develop a client or server that uses colour maps
internally.
Push encoder and decoder handling down into the connection objects

This keeps the reader and writer objects clean and simple protocol
decoders/encoders.
Encoders/decoders should track the connection object

The connection object is a much more appropriate object for the
decoders and encoders to keep track of. Besides the streams, it also
contains state like connection parameters.
Create a proper interface base class for the viewport's framebuffer

This allows us to gracefully fall back to the FLTK code in case the
platform specific code cannot be used.
getImage() doesn't need to be overloadable, keep it simple
Avoid having virtual methods where not needed
We don't need a fillRect() that is this optimised

Keep things simple instead and allows us to remove the extra setPF()
methods.
Get rid of the direct access abuse of FullFramePixelBuffer's data
Get rid of getStride()

It was confusing and not properly used everywhere.
Callers should use the stride they get when they get
the buffer pointer.
Provide a better R/W base PixelBuffer class

Clearly separates the read API from the write API
and also from actual implementation.
Only grab the regions we actually need

Allows pixel buffers that do damage tracking to get
proper information.
Add more 8 bpp conversion tests