Fix: Some nodes are not prepared by schema parser
Schema parsing should identify all dependency nodes, prepare them, and continue.
However, it is not currently able to find them. My guess is that nested schema are not
tracing their dependencies into solve_only_these.
So instead, the schema solver goes back and prepares these dependencies.
This section of code needs refactoring - the schema parse happens in the middle of
parse_tree. This section is highly confusing without being stuck in the middle of a
huge, important function. And I've made it worse by handing over dependency
solving in part to schema solver. Further work must refactor, and do it all correctly in
one place.