Cygwin support

It would be nice to define a variable `CYGWIN` to abstract away all these `findstring` calls, e.g.
```
ifeq (CYGWIN,$(findstring CYGWIN,$(OS)))
CYGWIN = 1
endif

...

ifdef $(CYGWIN)
...
endif
```