Refactor how formatting works.

The model is now based on padding (which include the background) and
margins (which don't)

Also included are default banner and error styles.