refactored process wrapper to allow running arbitrary processes
	processes run with the wrapper can be interactive ones e.g. a 'repl' or
non-interactive e.g 'ls'

added function for typechecking source code loaded in the current
project