Avoid double-evaluation of 'register' macro argument

The macro still isn't 100% safe, since certain symbols are evaluated more than once.

So given:

```el
(defun some-register-name ()
  ... side effects here ...
  :ibuffer-fullscreen)

(fullframe ibuffer ibuffer-quit (some-register-name) nil)
```

the expansion is:

```el
(progn
  (defadvice ibuffer
      (around fullscreen-rule-23514 activate)
    (window-configuration-to-register
     (some-register-name))
    ad-do-it
    (delete-other-windows))
  (defadvice ibuffer-quit
      (after restore-setup-rule-23515 activate)
    (jump-to-register
     (some-register-name))))
```

when clearly `some-register-name` should only be called once. This is a common macro-writing pitfall covered best (I think) in [Practical Common Lisp](http://gigamonkeys.com/book/macros-defining-your-own.html).

This commit illustrates how to avoid double evaluation in this case. :-)