Hashing

* use a hash table for symbol look-ups in environments, as opposed to original iterative lookup.  
* change grammar to use [] to denote a Q-expression rather than {}