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.