pic12si2c.asm add missing code to follow an other chip transmit.

The case when an other chip with different i2c address is read was not
handeled correctly. The corrected code is in branch 'pwrswitch' now.
pipicpowerd.c first attempt to lock /dev/i2c-? port

The i2c port locking should be attempted to see if any other process is using
the same bus. If the locking failes, the locking can be tried again N number
of times.

The write_cmd() and read_data() return now error codes:
-1  i2c device file open failed
-2  i2c device file exclusive locking failed
-3  i2c bus access failed
-4  i2c slave writing/reading failed

The error code from read_data() can be ambigious if the read data happens to
have a value from -1 to -4 in C integer representation.
pipicpowerd.c try to lock i2c device file port N times

If the initial device file locking fails it is tried again after one
second of time delay. This can be repeated by 'i2lockmax' times if needed.
Otherwise the i2c writing or reading fails. This locking and re-try is
done now in write_cmd() and read_data().