Add support for margins to a bunch of layouts.

All a layout needs to do to implement margins is add "margin"
to its config and pass it to _Window.place, which will update its
position and dimensions to account for the margin.
Merge remote-tracking branch 'dmpayton/feature/layout-margins' into develop
Add margin documentation