Move exec functionality to OS interface layer
Add unit test for OS::executeCommand()