gui: Implement a new surface viewer

Adds support for showing individual pixels and zooming in on the
image itself. All ready to be used for showing the actual original
pixel values, rather than the fake qimage pixels which it shows
right now.