This is an initial implementation using the same single-pass approach as the RenderingDevice.
Adds `header_guards.sh` bash script, used in CI to validate future changes. Can be run locally to fix invalid header guards.
As well as significant consequent cleanup in the RenderTarget, Texture, and Canvas renderer code