This follows the same pattern as I used for the C++ implementation.
Flattening the object is probably also possible, but I think it would
involve binding references to 'super' iff they are satisfied by fields
in existing ancestors and leaving them unbound if they're unsatisfied
so that they can be late-bound by extending the output object.
That seems at least as complicated as defining a new form of
uncachedObject to represent a key-removal operation.
For https://github.com/google/go-jsonnet/issues/830