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 haven't raised another issue for this with crossfilter yet.  It is rather complicated to try to home in on what the exact crossfilter issue is but we are working on it.