Fix symbol macros

Symbol macro expansion wasn't working as intended.  If you did

    (defmacro foo bar)

then bar was not evaluated with the defmacro was processed.  Instead a use
of "foo" would expand to "bar", which would then be evaluated.

This meant that things like

    (defconstant value-size (ash 1 value-scale))

were leading to (ash 1 value-scale) being evaluated wherever value-size
was used.  As we don't do constant folding, this is not ideal.

Now the RHS of a symbol defmacro is evaluated when the defmacro is
encountered.  So in the value-size case, the ash is evaluated when the
defconstant is encountered.

Of course, you can do

    (defmacro foo 'bar)

if you really do want "bar" to be evaluated where "foo" appeared.