I2C class changes

Bug?
    Changed the type of the value parameter of the send method from 'int' to 'unsigned char'.  Given only 8 bit's is ever transmitted over the wire 'int'
    could cause confusion.

    Added conditional value checks to several functions to validate params.

Efficieny enhancement
    By moving the fileopen processes to the setAddress and setDevice methods we can negate the need to repetively open
    and close the file during read and write operations.

    setAddress and setDeviceFile now return 1 or -1