Treat process-related variables in deferred.el

This makes process functions in deferred.el more compatible.

Note that there is a slight issue when using `process-environment`.  Since it is a list, it could be changed by a side-effect.  To even prevent that, we can do `(env (mapcar #'identity (copy-list process-environment)))`.  But I am not sure it should be in deferred.el.  Probably it should be up to user.