Small refactoring.
Finished left-rec elim, and fixed bugs in symbol registry comparison.

(Two symbol registries are only equal if they share the backing store;
two symbol registries that happen to currently have the same value for
their counter should *not* be considered equal.)

I am considering filing an RFC ticket asking if we should change
#[deriving(Eq)] on @mut T to have this semantics across the board.