Add selection of primitive to pixel debug from pixel history

* This means when multiple fragments are writing to a pixel you can choose
  precisely the one you want to debug, rather than the debugging always
  running the approximately last fragment to pass
Return values should be bool32 not bool
DDS writing fixes for cubemaps & 3D textures with mips
Implement DDS reading, add function to quickly check header exists
Ensure that proxy driver gets properly shut down
Proxy texture fixups - set cubemap, name, work for 1D/3D
amend to dds writing fixups
Only add log to recent list when it successfully loaded.
Check that UAV array is non-empty before indexing into it
Add image viewer so that an image can be loaded as a faux-log

* This adds the ability to drag in/open up a dds or jpg file and get all
  the usual texture viewing and manipulation options.