Merge pull request #1 from Sep102/master

Tabs to spaces and compiler compatibility fixes
improve synchronization

- select() is always ready on regular file descriptors... whoops.
- we can just read() the frame and sleep a little if there's nothing
  there, this avoids taking 100% of the CPU.
Add vim shiftwidth modeling
Support for basic Makefile OS detection
File notify is now done through kqueue on OSX