Basic interactive prompt.

Not unit tested yet as I'm still figuring this part out but the basics are there. Running the example CLI with the shell command launches it.