Rewrite several portions of the compiler

The new compiler requires that media queries be explicitly marked with
`^{:media true}` or `^:media`e.

The reason behind this is the original idea of assuming arbitrary meta
data suppose a media query is terrible. A data structure such as
`'({:a 1})` might contain the meta data `{:line 1, :column 8}`, for
example. This could lead to confusing results when the stylesheet is
rendered. By explicitly marking data structures this problem can be
(mostly) avoided.