Fix padding of widgets.

Thanks @ellisonbg for pointing out that the widget alignments were sour.

This PR simplifies the widget less and adds a default padding value to the base widget.padding trait which fixes alignment issues present in master.  This PR also fixes the application of widget.padding and widget.margin so they're applied to the root element.
Why is the default 2.5? Shouldn't it be a string?