Add context logging

As discussed in #1362, here is a PR that adds a simple history of context changes. The few pieces of dead code have been cleaned up, `ctx-obj` has been repurposed, `in!` and `out!` have been adapted.

I have used native cljs queues for the ring buffers. (Judging from the clj JIRA/GitHub/mailing list, their implementation is stable; they just lack a reader literal.)

Closes #1362.

A note:
For the purpose of history, context changes that are always executed together should likely be considered as a single atomic change, and logged as one entry. However, this is not currently possible in a reasonably concise way, as `in!` and `out!` are separate.
We might want to improve this in the future, as we develop introspection tools.