support custom spawn function

run can now take a `spawn` function as part of options obj.
Merge pull request #4 from jaredly/patch-1

support custom spawn function