operations: use R'G'B'A float for color-rotate

because that's what the HSV conversion functions expect. Also
clean up stuff a bit more.