shell: add shell stack capability

Sometimes it is useful to temporarily push the active shell to the
background and preform a small task in another shell. It is especially
useful for small utility functions.

Unfortunately such helper functions if they wish to be reusable between
testcases needs to be agnostic about the name of the active shell when
it is called. The ability to push and pop shells solves this problem!

Change-Id: Ib4b1a2236dc0c9100ce422aaec55fb6b6c96f371
Add scp support using start/finish

Change-Id: Ic410dd2b26c49e1d325f7986e187bf9160428d25