Limit var definitions to `:root`

* Only process and replace variables defined in `:root`.
* Make sure removal doesn't affect normal rules.
* Throw an error when variables are defined in @blocks like @media and
  @supports (needs more thought about how to support this use case).