Correct the subs tests and fix remove

I had a confusion about how `is` works. All cleared up now.

Once the tests ran, they showed that remove wasn't working -- I had
args to disassoc the wrong way around.

To help debugging, I made a protocol that collapses the tree into a
map of topic strings to entries.