run_tests uses subprocess to avoid os.system related bugs

run_tests now leverages the subprocess module for more robust calls to
the symbolic execution engine. For example, the previous code snippet
would not encapsulate paths that contained a space, failing to run the
tests.
encapsulate reset in FunctionInvocation