fixed merge channels

This should get the things mentioned in the doc string working, with no hue shift as stated in the issue.
The function works all fine when params are passed as (r=r,g=g,b=b).
It only created problems on passing (r,g,b) as it expected (r,b,g). That has been fixed in this pull