Allow use of maps in with-stub

As discussed on IRC, I'm pretty new to clojure so I may have screwed up the style.

I've added test-cases, and hopefully managed to keep this pretty tidy.