Run background and border through positioning

Previously the background and border classes would *sometimes* skip out
on having their position applied by the slot. This, however, made the
elements themselves unnecessarily responsible for things like margins
applied from parents, and resulted in margins getting double-applied at
some points.

Now we always run these through positioning, but that revealed another
problem which was an endless loop of slot repositioning as the
background grew to fill its slot. Turns out that was a result of us not
excluding "spaceless" elements from our slot content height computation.
Merge pull request #977 from shoes/background-positioning

Run background and border through positioning

Changelog: bugfix
Merge branch 'master' into background-overflow-fix
Parent-dimensioned elements should obey margins

The calculated extent we were making didn't take the final margin of the
parent into account, so we had overruns in that direction (right or
bottom).