Add padding support

I realized that the "padding" CSS shorthand property is almost identical to "margin", so I refactored the margin provider to make padding easy to add.

Note that I renamed margin.js to trbl.js.

Unfortunately, this pattern does not work with: border-width shorthand because longhand values are border-[side]-width (as opposed to border-width-[side]). Sigh.

There may be others that would be easy to add here, but I couldn't think of any.