Implements the searches in vardecs and function arguments using hashmaps instead of linked lists. Global objects is still a linked list because there are not that many, and we would have to create separate tables for each namespace.
Brings total compile time for #2377 (closed) down from 13:02 to 1:39 on my machine. The majority of this time is still spend in IVD. Further optimisations could be to move IVD up and make phases introducing many SPID and SPIDS responsible for generating the variable declarations as well.