Found and fixed (work around) I2C bug where calling Wire.Begin() a second time would cause the following transmit to hang the device.  I added a check to see if the I2C channel has been opened since the last device reboot.

Updated some connection timeouts, error codes, retries, etc to improve overall stability.

Added BlinkM test code.