Persist instrument contexts

_This pull request should not be merged.  It's review-only._  (Github needs a way to notify people to look at stuff that isn't PRs.)

This PR contains code to generate instrument contexts, lock them to response sets, and generate Mustache rendering contexts from those ICs.

Currently, the goal is to replicate all functionality in the original `InstrumentContext` class.  This may be overkill: it seems to me that we should be able to generate just enough context for the response set.  However, to do that, we need to know what helpers are used in which surveys, and as far as I know that mapping doesn't exist.