Add mechanism to temporarily replace root bindings of vars

Description

There are cases, such as mocking out functions during testing, where it is useful to replace the root bindings of vars (dynamic or otherwise) with new values temporarily, and have them reliably set back to their original values when done.

Some discussion here: http://clojure-log.n01se.net/date/2010-10-29.html#09:11

Environment

None

Status

Assignee

Stuart Halloway

Reporter

chouser

Labels

None

Approval

Ok

Patch

Code and Test

Fix versions

Priority

Minor