Allow dashboard widgets to have a dynamic height

At the moment, we require the height of each widget to be given explicitly. This doesn't work too well, since in many cases, a widget doesn't have a fixed height.