Rewrite the CTF editor

* This new design will allow for new types of function nodes that can contribute one or more values to the final function.
* Additionally, function nodes which control both color opacity and should now be possible.

For ease of review, you probably should ignore the diff. I've basically rewritten everything... Yeah. Sorry.
:eyes: So this explains why I couldn't get the demo to work when I switched to master...