Add more realistic environments

Make environments a list of hashes, with symbol resolution
order from first to last through the environment list.

In addition, add several built-ins to help with environment
testing and manipulation.

* set-car!
* set-cdr!
* define (as special form)

No tests have been added for these