as: implement the symbol table as a hash table.

The symbol table used to be a linked list. It's now implemented as
a hash table. Insertion is now O(1) and the average look-up is now
very close to O(1). Look-up degrades to O(n) in the worst case when
all of the labels begin with the same 2 characters.