Added a built-in macroexpand function

This is a special form, so for example you can do:

```
=> (macroexpand (-> (a b) (x y)))
(u'x' (u'a' u'b') u'y')
=> (macroexpand (->> (a b) (x y)))
(u'x' u'y' (u'a' u'b'))
```

Would be more pretty if that printed as e.g. `(x (a b) y)`, but this is just using the current `quote` functionality, so that should be fixed there.