Implement shell engine to be able to load different shells on startup

Signed-off-by: Simon Busch <morphis@gravedo.de>