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.