Provides `-compose` for function composition

This patch provides a `-compose` operation that works similarly to Clojure's `comp` function. It takes a series of functions, and returns a new function that's the mathematical composition of them, such that `(funcall (-compose 'f 'g) x)` becomes `(f (g x))`.

Compose is particularly nice for easily creating new functionality (without having to provide a lambda yourself), and for fusing functions in a `map` instead of iterating twice, and I missed it on the library I'm writing right now, so I thought I'd submit a patch ;)

Oh, sorry for the double commit. I didn't realise you were supposed to run the `create-docs.sh`, and pushed to the repository before doing that. My fault for not reading the contributing section before doing things :(