Remove -std=c89

C89 does not support POSIX.
I'm not sure which standard to use. It would be nice to use the oldest one that
is widely supported but still has all POSIX functions. AFAIK, gnu89 would cause
issues with e.g. BSD
Don't allow forkexec on directories

access(path, F_OK) doesn't mean that path is to a file (can be directory).
This will make lsh fork itself if path is '' or a directory
^C/SIGINT now just sends a newline (like bash)
Make SIGINT async since POSIX wants it to be
Make other programs able to SIGINT lsh

The program now checks if the SIGINT is received from this this or another
program, and only turns SIGINTS from the same pid into newlines in stdin