Make THaVarList a THashList instead of a TList for better performance.

(Almost) everything just happens automagically as we inherit from
THashList instead of TList. THaVarList::Find(const char* name)
automatically makes hash table lookups, vastly improving the search
speed if a large number of global variables is defined.

Also, make THaVarList the owner of its objects, so as the list is
deleted, so are all of its elements. This was already the previous
behavior; this just eliminates duplicate code.

Closes #27.
Modify output of THaVar::Print(). Assume variable-size arrays as default.

Non-array variables no longer print "[1]" after the type name.
Fixed-size arrays now print "=[n]", where n is the number of elements.
Multi-dimensional arrays print "=[n,m,...]", and variables-size arrays
print "[n]".

Requires small modifications to THaArraysString.