Updated list of filters in README.
Docmuent the GLEW requirement.
Fix alpha handling with sRGB textures.

OverlayEffect needs working alpha, so this cropped up. We don't
really have full alpha handling everywhere, but this is a good
start; I added some tests here and there to tighten it up a bit.
Fix an error in a comment; we are implementing over, not atop.
When running make check, output which checks failed.
Make Movit work in premultiplied alpha.

This is a pretty big change, even though the most visible change right now
is that OverlayEffect looks better in the edges of upscaled material
(which you won't really notice too much, given that our handling of
different resolutions already sucks). Since most material is going to
assume postmultiplied alpha, we need to track the status around the graph
pretty much as we already do with gamma and colorspaces, so it's quite
a lot of new code (and associated test complexity). It really does look
better, though.

Negative sides: MixEffect has gotten less flexible since it now also
handles the alpha; for instance, you can't really use it to subtract
things the same way anymore. Also, I think the glow effect has been broken by
the changes to MixEffect, so I'll need to fix it and then add a test so it
doesn't break again.
Add the rest of the files for the premultiplied alpha commit.
Revert all the changes in demo.cpp that were never supposed to be there in the last commit.
Correct atop → over in the README too.
 Remove the code for postmultiplied alpha from OverlayEffect.
Small spelling fix.
Fix two issues related to non-treelike (diamond) effect graphs.

First of all, we could have an assert failure when an input was used twice.
Work around it by simply ignoring the input the second time.

This, however, would expose an issue where effects could be emitted in the
.glsl file out-of-order. Refactor the topological sort code so that it can
be reused for arbitrary subgraphs, and then use it to topologically sort
the list of effects in each pass.

Add a unit test to verify that all of this works.
Refactor RewritingTo{MirrorEffect,InvertEffect} into a reusable template; it started getting silly with the number of Rewriting* classes.
Fix a memory leak in expect_equal(). Found by Coverity Scan.
Add an assert to expect_equal() to make sure people send in reasonable widths and heights.
Print output node in the dot graphs.

This makes it possible to look at the properties of the last
effect, which is often useful to debug the fix_output_* functions.
Add an assert saying that if an input has premultiplied alpha, it must also have linear gamma.

This holds true for nodes in general, but I'm not sure enough about all sorts of intermediate
states that could cause this to be temporarily untrue for other nodes.
Make output_dot() cope with effects that are in multiple phases.
Fix another issue where an input was used twice. Add unit tests, again.
There are reports that Movit actually does work with Nouveau.