Support Shell

Finish porting the linenoise interface and a command parser