Lazy Let

@tlunter 
- Added a `lazy-let` macro that uses both `let` and `symbol-macrolet` to achieve its goal
- Switched context from using `symbol-macrolet` to `lazy-let` for all of the `lets`

I'm not thrilled with the way I had to define `lazy-let`, but it suffices for now. If a better solution presents itself in the future, I'd be happy to switch to that.