Fix some naming.  Optimize list operations.

Many of the variables were poorly named, and the method receivers were
all called 'self'.  This patch does all the appropriate renames.

It also optimizes some of the list operations to only perform a single
hash lookup (in the case of Remove), and use MoveToFront() instead of a
Remove()/PushFront() combination.  This is both faster and produces less
garbage.  Any further list optimizations will come from a custom list
type.