gp_codegen: pixeltype.py: Edhance channel list members.

Previously the channel list (and dict) members were simple triplets.

This commit creates ChannelList object derived from list and adds
a few convinience member values.

* c.name returns channel name (same as c[0])

* c.off returns channel offset (same as c[1])

* c.size returns channel size in bits (same as c[2])

* c.C_shift returns string with C shift (i.e. " << 8" if off=8)

* c.max returns maximal channel value as int (i.e. 2 ^ len - 1)

* c.C_max returns maximal channel value as hex string

* c.mask returns channel mask as as int

* c.C_mask returns C mask as a string (i.e. "0xff00 for len=8 and off=8)

Signed-off-by: Cyril Hrubis <metan@ucw.cz>
tests: core: New test for pixel conversions.

Signed-off-by: Cyril Hrubis <metan@ucw.cz>
core: GP_Convert: Make it more readable.

Signed-off-by: Cyril Hrubis <metan@ucw.cz>