require expect in setup.tcl

This should have been done in 6a75f81.
shell: always set active_shell

Alias of the active shell needs to be stored in int::active_shell
disregarding of if it is a new shell or we are switching back to a
existing one.
shell: verify you have a shell before you can push it

There is no point in trying to push a shell if you do not have one.
Merge pull request #17 from neg/bugfix

require expect in setup.tcl
Merge pull request #18 from neg/shellfixes

Shellfixes