More robust unwinding of dom expressions

* Fix faulty logic in the dom expression unwinding code.
* Don't unwind special forms or macros because they need to get their
  arguments unevaluated.