Improved system for post processing shaders.

This is the system for improving configurability of shaders from a user perspective.

This doesn't have multiple render stages in the PP shader backend, but is more centered towards bringing configurations of the shaders options to the UI.
That looks to me like a bad OO design. Maybe the configuration object needs to be split into its own thing, independent from the implementation object?