so this is broken
Big overhaul. New way of storing state that lets us do less tree-walking. Still broken
some simplifications & make watchers actually watch
this is a tower of crazy dreams. Hopefully getting close to proper
handling of default values in slowlookups.