WIP optimizations to reduce memory churn, processor time per iteration
Move solver to a web worker. Had to replace some console.logs in PZL with consolePrint calls; should revisit this later.
Tidy up worker vs non-worker cases in analyzer. Analyze only when rule text changes. Analyze every level starting with the current one, if any. Leave some notes for future improvements.