simplified pop/push state stack

* only keeping { binding, scope } on stack
* added push/pop tests