Rename 'tag' to 'symbol'

This also removes naive management of namespaces.  Namespaces need a
hierarchical model.
Add list-init

'list-init' corresponds to the Haskell list function 'init'.
Add bits-count and bits-required
Reimplement symbol tables to be hierarchical

This change introduces yet another ad-hoc lens encoding.  Maybe
something more general can be pulled out of symbol-table-lens and
tuple-lens.