Add kpm wrap functional tests

parent #936 
Can this assert anything more about the results of running the programs? Like assert the output or something? I just have this feeling that in some circumstances certain bugs would manifest in ways that would still cause the apps to run successfully, and thus return exit code 0. But if the apps each outputted something that *proved* they successfully ran, it would be good to assert *that*.