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.
The function is defined from 0 to 1. These are really just parking values because I have to assign a tuple with two floats.