Introduce Tables

- Tables can now be drawn from DataSets, using:
-- var table = new insight.Table(name, element, dataset); 
-- insight.addTable(table);
- Added some CSS to the default theme.

- Refactored some methods and names in Grouping.js
- Refactored and renamed some methods in Insight.js to make it less Chart specific, and allow Tables as well

- Added multiSort() utility function to insight.Utils. This function takes an array, a list of sorters and attempts to sort the array based on the sorters' order and priority.
Can this be simplified down a bit?

E.g.
    sortResult = (aResult - bResult);
     if (!sortResult) { sortResult = recursiveSort(a, b, sorters, index); }

     //Deal with Ascending vs Descending
     sortResult = (sortOrder == 'ASC') ? sortResult : -sortResult;

     return sortResult;