i2c: Switch to dynamic allocation of i2c contexts
i2c: Switch to dynamic allocation of i2c contexts

Using a single static context per bus can cause issues for devices or
programs that use 2 or more i2c contexts.  Specifically, it then
becomes neccessary to set the i2c address before each access, since
each call to mraa_i2c_address overwrites the last call.

Since we are now using malloc/free via newlibc, we can use a
dynamically allocated context per request.

Signed-off-by: Jon Trulson <08664b19c2d4086eb239dd8ec32d593676a5b9e4@ics.com>
Signed-off-by: Brendan Le Foll <3e0e8c4069934e8b47d99704927a85c66c0ceb33@intel.com>

whbruce/zmraa,malikabhi05/zmraa-1,intel-iot-devkit/zmraa,jontrulson/zmraa