Add `with-context` macro for conviently wrapping collapsers in thier own context

Closes #132