suppress warnings with Cygwin

Many warnings occurs when compiling with Cygwin. E.g.:
```
  CC       src/options.o
src/options.c: In function 'parse_options':
src/options.c:252:5: warning: implicit declaration of function 'fileno' [-Wimplicit-function-declaration]
     rv = fstat(fileno(stdin), &statbuf);
     ^
src/options.c:443:9: warning: implicit declaration of function 'popen' [-Wimplicit-function-declaration]
         out_fd = popen(opts.pager, "w");
         ^
src/options.c:443:16: warning: assignment makes pointer from integer without a cast [enabled by default]
         out_fd = popen(opts.pager, "w");
                ^
src/options.c:477:24: warning: assignment makes pointer from integer without a cast [enabled by default]
         gitconfig_file = popen("git config -z --get core.excludesfile", "r");
                        ^
         (snip)
```

These warnings are caused by the option `-std=c89`, because `fileno`, `popen` and some other functions are not defined by ANSI C89. Using `-std=gnu89` instead of `-std=c89` fixes this issue.