i2o: core: reworked the xfer functions and modes.

Reimplemented i2o_dev_xfer to be no longer full duplex. The function is
now single duplex and isn't able to select the right mode anymore. The
channel selection process is now verified by bitwise math:

f(x) = ((ctype & mask) & type == type) & ((~output & (irq & flags)) | (~output ^ (coutput & flags)))
Where:
	* ctype are the types the channel supports
	* coutput is the output flag in the channel flag register
	* mask is the type mask
	* type are the requested channel functions
	* flags is the channel flag register

Only if x is non zero, the channel will be selected and used.

The way modes are handled are very different now aswell. Modes are only
set or changed by the specific device driver or from userspace by the
(not yet existing) sysfs.

Modes will be used by transmission and buffer functions to define the
behaviour of that specific functions. E.g. which function pointer to use
in transmission functions.

Signed-off-by: Michel Megens <dev@michelmegens.net>