Initial implementation of filter effects. Still a lot more work to
come.

Needs tidying, docs, testing, etc.