i2o: core: implemented several alloc functions.

Implemented:
	* i2o_dev_alloc
	* i2o_channel_alloc
	* i2o_dev_release

i2o_dev_alloc allocates a new I2O device and returns a pointer to it.
The struct device that resides in the I2O device is also allocated.

i2o_channel_alloc allocates a new channel and returns a pointer pointing
to it. This function also adds the channel to an existing list of
channels in a given I2O device.

i2o_dev_release is the reverse process of i2o_dev_alloc. It free's all
memory associated with a given I2O device. That means that also all its
channels, the static info structure, etc.. will be free'd.

Other helper functions which are implemented in this commit/patch:
	* i2o_dev_id
	* i2o_channel_id
	* dev_to_i2o_dev

See the documentation for descriptions of these functions.

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