reworked enyo.table interface after writing _lots_ of tables

I spent the weekend writing lots of tables.

Problems with the existing interface:
Except for the simplest of simple tables, I needed a function to transform
the data into an array of arrays then I passed that array.

I was adding html to the cells for no other purpose than formatting.

between the formatting html and the header row I couldn't easily do
calculations on the data.

Description of new interface
the new interface calls `genHeader` to generate the header row.
then it calls `genRow` to generate each row.
finally it calls `genFooter` to generate a footer row.

each of these functions returns an array, where each element corresponds
to one cell. if the element is an object, that object is mixed into the
cell kind: `{ tag: "td", allowHtml: this.allowHtml }`, otherwise, the
element is inserted into the content attribute of the default kind def.

all row data (excluding header and footer) is put into the `_rowData`
array. You can easily get data out of that array by calling `getRow(i)`
`getCol(j)`, `getCell(i,j)`.

Advantages of the new interface

The default `genHeader` and `getRow` mean it is just as easy to work
with arrays of arrays as it was. no additional coding needed.

Mixins make it trivial to add styling to a cell. also allow other cool
things: you could add a tooltip to specific cell, or make it tappable.

It is now _much_ easier to work with the data. I am now working on
a sortable table that will let you specify sortable columns. new system
makes this trivial.

The code is actually less complicated than it was, while still being
as fast to extend, and, I think, easier to grasp.

I hid private methods.