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 #18 from neg/shellfixes

Shellfixes