i2o: core: added a helper to obtain static info

i2o_get_info is a helper function to obtain static device info. It will
return the struct i2o_static of a device, which is stored as a pointer
in struct i2o_dev::info. NULL is returned if the info is not present.

Signed-off-by: Michel Megens <dev@michelmegens.net>
i2o: core: added i2o_dev_hard_request.

i2o_dev_hard_request can be used by functions performing critical tasks
(such as reading/writing data) to esure that the device is requested.
However, it a bad practise to rely on hard requesting. You should always
manually request the device in your module. Relying on hard requesting
might cause problems later on, since its verry hard to track whether the
device has been hard requested at all and if it is, it wont be free'd in
the end.

Signed-off-by: Michel Megens <dev@michelmegens.net>
i2o: core: added i2o_dev_free to free devs.

int i2o_dev_free(struct i2o_dev *dev):
	This function can free allocated (requested) pins. This means,
        after this call the chip is free to vanish. Therefore, after
        calling i2o_dev_free no critical actions should be taken upon
        the device (or atleast, not before calling i2o_dev_request
        first).

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