Handle I2C clock stretching and EPIPE error

I2C module updated to handle potential I2C clock stretching. Any
access to the I2C device may result in blocking call. This is most
likely the result of clock stretching. Whether or not the clock
stretching is intentional is irrelevant. An RNP should not stretch
longer than a few 100 ms e.g. for an NV access. The driver I2C module
of the NPI_Serverr was not written to take this into account. Now,
we exit after three consecutive blocking I2C read or write access.
Since we do not expect this from a working RNP we attempt to reset
the device. The error is reported back to npi_lnx_ipc.c and the
reset is handle through reinitializing the I2C module. This includes
hard reset of the RNP.

In case a Client disconnected as the Server was about to send an AREQ
we could have EPIPE error. This error is now better handled.

Since the Client doesn't have a signal handler we simply suppress
EINTR errors from poll().

makefile is updated one step too far.. see next commit
HID support requires more than what is committed.

Hence we remove HID from the makefile. It can be supported
upon request.