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
shell: add unittests for shell_{push,pop}

Very basic tests to verify expected behavior.
shell: add unittests to test int::active_shell

Check that the internal variable int::active_shell is updated correctly
when spawing, switching and closing shells.