Ignore failures writing to a process' stdin

Do not crash if the caller attempts to write to a non-existent process:

    {ok, Drv} = alcove_drv:start(),
    {ok, Fork} = alcove:fork(Drv),
    ok = alcove:execvp(Drv, [Fork], "/bin/echo", ["/bin/echo", "test"]),
    % will hang forever instead of crashing
    ok = alcove:execvp(Drv, [Fork], "/bin/echo", ["/bin/echo", "test"]).

There are 2 common failure cases are:

* the PID is not found, pid_foreach() returns 1

* the write fails because the child has exited (EPIPE)

write(2) on Linux documents the following errno values:

* EAGAIN, EINTR: should be dealt with by using completing partial writes

* EBADF, EINVAL: since the event loop manages the fd's and the fd's
  are not accessible by the caller, should be harmless to ignore errors

The issue is if the child process can end up in an inconsistent state.
If it is possible, then it is better for the parent process to crash.
Add call/5: call with timeout

Fix the code to match the documentation and add a call with timeout.

Simplify the alcove_drv module by removing the versions of call with
defaults. The alcove module does the work of setting default values.
Add test for writing to invalid PIDs