Draw charts with no data

 - Introduced insight.DataProvider as base class for insight.DataSet and insight.Grouping
 - Improved test coverage for Dimension and Grouping
 - Improved auto margin calculations to handle no tick values
 - Workaround issue where crossfilter fails for one-to-many dimensions with no data
 - Decoupling ChartGroup and Dimension
 - Introduced a new insightTesting namespace including a custom matcher for comparing arrays whilst ignoring ordering
We should explain what the return values are (unless they are {this}).