Fix latent TLV encode/decode bugs

problem 1: 

We were limited to only accessing the first 256 bytes of any EEPROM.
The bug has not been hit, as no platform has EEPROM data larger than
256 bytes.

We were using i2c_read() and i2c_write() directly, where we should
have been using eeprom_read()/eeprom_write().  This patch makes that
change.

problem 2:

The TLV encoder was checking that the length of the in memory TLV data
was less than 2048 bytes, as specified by the ONIE TLV spec.  In
general, however, the max size of the EEPROM data should be the lesser of:

– TLV format max size, defined by the spec to be 2048 bytes.

OR

– Physical EEPROM size

The physical EEPROM size may be further reduced by platform
constraints.  For example even though the EEPROM device is 1024 bytes
long, only 512 bytes may be allocated for ONIE's TLV data.

Each platform that uses the ONIE TLV format will now define
CONFIG_SYS_EEPROM_MAX_SIZE, which is the maximum size, in bytes, of
the EEPROM data.

This patch updates the ONIE TLV EEPROM code to verify the physical
limit is not exceeded.

Reviewed By: scotte

Testing Done:

Excercised the TLV EEPROM code on various platforms.