Anaphoric macros

Add hy.contrib.anaphoric macros to make functional programming in hy super-awesome:

```lisp
(require hy.contrib.anaphoric)

(list (ap-map-when odd? (* it 3) [1 2 3 4 5 6])) ;; [3, 2, 9, 4, 15, 6]
(setv q [])
(ap-each-while [1 1 2 0 1 2 3 2 1] (< 3 it) (.append q it))
(print q) ;; [1, 1, 2, 0, 1, 2]
```

And so forth.

This is just the start. We'll need to add ```reduce```, ```foldl```, etc for more awesome-sauce.