i2o: core: implemented two buffer helpers.

Implemented:
	* i2o_add_buffer
	* i2o_del_buffer

i2o_add_buffer is responsible for allocating a new `struct i2o_buffer'
and adding it to a channel, given in the parameters.

i2o_del_buffer is responsible for deleting a buffer from a channel. The
function will first check if the given buffer is actually present in the
list of buffers for that channel. If it's not, an error code will be
returned.

Signed-off-by: Michel Megens <dev@michelmegens.net>
i2o: core: implemented i2o buffer read/write.

Implemented:
	i2o_read_buffer
	i2o_read_buffer_latest
	i2o_write_buffer

i2o_read_buffer will read the value from a given buffer in to memory
passed to the function in the parameters. If the memory area given isn't
big enough to hold the value an error is returned and the buffer remains
unchanged.

i2o_read_buffer_latest will do the same as described above, it will only
select the most 'fresh' buffer.

i2o_write_buffer will write given data into a given buffer. It will also
mark the device flag `I2O_DATA_AVAIL' to indicate that there is data
available on one of the device channels.

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