Add new EffectWidget uix module

Needs testing!

The EffectWidget replaces its normal canvas with an fbo, and is able to apply any number of glsl effects (each with their own fbo) before the final rendering.

Effects consist of glsl snippets defining an 'effect' function with some particular arguments and returnind a new colour. The shader performs kivy's normal transformations before calling this effect function. They are provided in python through the EffectBase class, so the user can do more complex things like animate uniform variables if they like.

Doc is all included, but I can't work out how I'm supposed to add effectwidget.py to sphinx so it isn't actually built. Should factory_registers.py be edited manually? I couldn't get the setup.py method to work.