Add dims constructor option for Led.Matrix devices

Supports array, object or string e.g.
dims: "16x8"
dims: [16,8]
dims: {columns: 16, rows: 8}
Valid dimensions are 8x8, 16x8 or 8x16
Also make sure led and digit functions in controllers are consistent.
The consequent for the string condition can be simplified. Store the dimension string keys along with dimension objects like this: 

```js
Led.Matrix.DIMENSIONS = {
  "16x8": { rows: 16, columns: 8 },
  "8x16": { rows: 8, columns: 16 },
  "8x8": { rows: 8, columns: 8 }
};
```

The rest can be simplified as well:

```js
opts.dims = opts.dims || LedControl.DIMENSIONS["8x8"]; 

if (typeof opts.dims === "string") {
  opts.dims = Led.Matrix.DIMENSIONS[opts.dims];
}

if (Array.isArray(opts.dims)) {
  opts.dims = {
    rows: opts.dims[0],
    columns: opts.dims[1]
  };
}
```