A symbol in a shared position can now reference thread-local variables (and, I think, parameters).
Refactoring done for the above made it possible to work out which type of scope a variable reference is in at modelling point, as well as access to the entire environment at modelling point. This means we've been able to fix #97.
Some pretty-printer fixes, including removing excessive newlines after a heading (this might have broken something else!)
Thanks to @BenSimner for most of this PRQ!