Add spacing utilities with tests.

Add utilities for controlling space between components without specifying this within the component. Vertical spacing in particular is highly contextual, so it’s (in turn) highly practical to control it using utilities at the template level.

Status: **Opened for visibility**
Reviewers: @jeffkamo @kpeatt @scalvert

## Changes
- Add vertical and horizontal spacing utilities

## Notes
- Need tests
- `start` and `end` replace `left` and `right` for writing-direction independence.
- Padding utilities could be added, but in my experience are less important.
- Horizontal utilities could be reduced, but I find that they are useful as much for controlling inline spacing, e.g. between icon and text, and so some finer-grain options based on em size are important to have.