Library based macroexpand and macroexpand-1

This pull request is an alternative implementation of #311. That PR uses the compiler. This PR uses library functions and some messy inspect code instead. Choose whichever you prefer!

These commits add `macroexpand` and `macroexpand-1`, using the code by @olasd, to core, along with simple tests and documentation. These macro expansions are not special forms.

```clojure
=> (macroexpand '(-> (a b) (x y)))
(u'x' (u'a' u'b') u'y')
=> (macroexpand '(-> (a b) (-> (c d) (e f))))
(u'e' (u'c' (u'a' u'b') u'd') u'f')
=> (macroexpand-1 '(-> (a b) (-> (c d) (e f))))
(u'_>' (u'a' u'b') (u'c' u'd') (u'e' u'f'))
```

This obsoletes PR #308, and incorporates PR #309.