Add support for screenshots from Direct3D

I went for using debug buffers since they're already there and deallocate automatically.

I wanted to keep the logic localized so I used static methods.  Technically backend != gpu, but it still seemed relatively sane.  I guess the logic could be in thin3d instead.

-[Unknown]