Adds HT16K33 I2C Matrix support to LedControl

* Refactored LedControl to move methods into Devices interfaces.
* Added a new device interface to support HT16K33 matrices based on port of AdaFruit I2C LED Backpack library.
* Added tests for the new device

The following options have been added to the Led.Matrix constructor to support the new device:

_isBicolor_ (default = false) If set to true the _led_ function will use the state param to set the color e.g. 0 = off,  on = any value from LedControl.COLORS and the led will be set to that color. The existing behaviour of 0 = off, 1 = on still applies for monochrome matrixes

_addresses_ optional array of I2C addresses for devices e.g. [0x70, 0x71, 0x77]
If addresses is not specified, the default addresses start at 0x70 and increment from there up to the total number of devices (specified by the _devices_ option, as per the original code for MAX7219 matrices). e.g. if neither _devices_ nor _addresses_ are specified, the default will be a single matrix with address 0x70.

The new interface is confirmed to work with OCROBOT and AdaFruit bicolor as well as AdaFruit monochrome HT16K33 matrix.
Remove return to avoid overriding object returned by constructor
Ran ledcontrol through jsbeautifier
Fix bug with drawing from strings with leading zeros
Refactoring HT16K33 support in LedControl

Rename devices to controllers
Move common functions (on, off, brightness) back into LedControl.prototype and add associated tests
Added example for HT16K33 Matrix in docs
Fix missing semi-colon
Allow LedControl.row value param to be a string
This is backwards compatible with existing API but makes it easier to use the function (don't have to convert binary string to number) and is more flexible for bi-color matrices where color values can be a number other than 0 or 1
v0.8.17