std::run: Use Result instead of condition

Previously `std::run::Process::new()` raised a io_error condition then
tried to unwrap `None`, so it caused assertion failure.

This patch fixes the problem by returning Result instead of raising
condition.