Set proper working directory for process

Prior to this change,

```cl
(let ((default-directory "/"))
  (deferred:nextc (deferred:process "pwd") 'message)
  (let ((default-directory "~/"))
    (dotimes (_ 3)
      (sleep-for 0.1))))
```

prints your $HOME instead of "/" because callbacks
are executed in context of sleep-for.  Now,
default-directory is properly propagated.

fixes #4