Large refactor using maps, better extends

Most of this is a straight refactor, generated output is the same however there are a few additional extends and surgical classes.
What's the point of these? Is there an assumption that at some point you might add additional styles to something like `.display-block`? Or are we saying that we should always be extending, rather than just using the actual `display: block` rule?

If it's the former (eventually we might have additional styles), then I think `.display-block` is a bad name for this rule. It should be something more generic, rather than just using a regular CSS declaration verbatim.