Let dashboard widgets be responsible for their dimensions

At the moment, we set the widths and heights of widgets contained in a dashboard in `sapphire.dashboard`. This is problematic, since some widgets don't have static heights. For example, `sapphire.widgets.lines`'s height is dynamically determined (the legend table's height is proportional to the number of metrics).

If the width and height setting was left up to each widget type, we could simply not do any height setting for cases where it isn't relevant.
The pie widget's height is dynamic because of its legend, so its height won't equal its width. We do set the actual chart's with and height dimensions to be identical (though the margins might cause the `innerHeight` to still be different to the `innerWidth`). The [`arc`](https://github.com/praekelt/sapphire/blob/feature/issue-59-let-dashboard-widgets-be-responsible-for-their-dimensions/test/widgets/pie.test.js#L14-L20) helper function does this too, so if the actual chart's dimensions were calculated diffently to `arc`, the chart drawing tests would fail. Happy to add another test for checking that the pie widget's chart height and width are equal, but I'm not sure how useful it would be.