Add Button component with tests.

Add low-level (universal) structural styles for styling buttons. Creates a baseline for per-project theming.

Status: **Opened for visibility**
Reviewers: @kpeatt @jeffkamo @scalvert 

## Changes
- Add Button component.
- Add tests.

## Notes
- A few styles are not configurable and should be overridden per-project (such as disabled appearance).
- The `is-disabled` state class is pending approval of the `is-` convention for state classes.
- The `is-disabled` state affects appearance only, and should be used only for elements that don’t support the `disabled` attribute (like links). Therefore “disabled” links must be defaultPrevented in JS, etc.