Refactor the LZ tools and fix BSSReader's eval shenanigans.

re BSSReader: Obviously the correct solution is to occupy the __builtins__ key. So that all keys can be real constants (i.e. when reversing the dict, as in this case) the dict is instead copied when passed into eval. In retrospect, the __builtins__ key could just be removed once BSSReader is done.