i2o: core: added channel name initialisation.

i2o_channel_alloc now also allocates memory to set a name. The format
for the name is as follows: i2o:channel:<id>.

The memory allocation is done by kasprintf.

Signed-off-by: Michel Megens <dev@michelmegens.net>
i2o: core: rewritten the ID generation.

I2O device's and channels are given an unique number to identify them.
These numbers were previously generated by continiously increasing a
counter (both the device and channels had a seperate counter each).

This way of generating unique numbers has been replaced by the IDR. IDR
is a library provided by Linux to generate numbers. Once you have
generated a specific number, or range of numbers, it cannot be
regenerated again, untill you release the number again. Numbers can be
generated and released using ida_simple_get and ida_simple_remove
respectively.

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