Refactor Colour Filters into their own file.
Implement color filters using the object shader

This means we now render the sepia scenes in CLANNAD correctly, but only when
we have shaders available. I'm completely cutting the fallback since it renders
incorrectly in most cases and doing nothing is preferable. This also fixes the
transition into the LB Refrain ending.

Closes GH-14
More debugging information about object properties in the screen dumps.
Display haikei backgrounds in graphics dumps.
Move to integer space for calculations.

This removes the obvious tear during the LB refrain ending, and fixes texture
seams I introduced in e42113b303b34ef62f4b463ec71c19aa55db33b1.
Use non-power of two textures when available.

This lets us skip the entire mess of texture seams.
Fix parsing g00 files for the LB Refrain ending.

Several g00 images in the ending are stacked right on top of each other,
leading to corruption. (For example, the credits and the page flipping in the
Refrain.)  After a few weeks of trying to do this the right way, I'm giving up
and just hacking this. I've tried looking at all the data in the g00 file and I
haven't found anything that looks like a layer flag. After grepping all the g00
files I have access to, I've verified that this condition only happens in LB
and in 4 files in Tomoyo After, which I suspect I wasn't displaying correctly
either.

Closes GH-39
Play sound effects during selections.

There doesn't appear to be anything in the Gameexe.ini that lets the
scripter control this; I suspect that SE#0/1 are hard coded into
the system.

Closes GH-18
Silence console spew during the Refrain.
Make the maximum texture size smaller than what the driver says it is.

Little Busters tries to load 9 different 1,200 x 12,000 images into memory
during the circle on purple scenes in the Refrain. We're still going to
spike by 500 megs, but maybe we can do something about the allocation
pressure?