Remove finalizer from Sdl2GraphicsDevice since the context has thread affinity and therefore cannot be safely called from the finalizer thread.
Formatting.
Also dispose ZipInputStream in InstallUtils.ExtractZip.
Added a specific method for calling the PerfTimer with the long tick threshold as the limit, and outputting in the tick format. This is carefully designed to delay creating the output string until it is needed and avoid allocations. The class itself has been refactored slightly to reduce its memory footprint since many are created.
Changed HardwarePalette.ApplyModifiers to be more efficient.

It will no longer copy the dictionaries or palettes every time, saving significantly on allocations.
It will only apply changes to the data buffer when the modifiable palettes have possibly changed since the last call, and then only from the modifiable palettes rather than all palettes.