CommandRunner: Stop abusing the borrow checker & add assert_run! macro
CommandRunner: Stop abusing the borrow checker & add assert_run! macro

Instead of doing nasty, evil things with `'a` lifetime annotations, we
do nasty evil things with `Rc<RefCell<_>>`.  This makes our public API a
lot easier to use, which is the important thing.

We also add an `assert_run!` macro that makes it much nicer to assert
that the expected commands were run, using a mixture of string literals,
computed strings, and computed paths.  This also requires a bit of Rust
magic.  But you'll like how easy it is to write and test commands.

This code is worth breaking into a separate library, I think.

faradayio/cage,faradayio/cage