gio: new kqueue() sybsytem
Features:
- totally async: all file operations in separate thread, witch communicate via pipe: this is for prevent GUI freezes on open dir with many files/slow fs
- less CPU usage
- adaptive rate limit to prevent high CPU usage on many files changes during long time (ex. build some big app)
- lite monitoring mode for non local file systems: to avoid freezes on open some network dir via file manager (many open() call even in separate thread will cause GUI freeze)
- tunable limit for local dir files count: if dir contain more than LIMIT files count then do not monitor files changes, only dir changes
- tunable to disable monitor for subfiles and subdirs on non local filesystems
- small code size: less than 1500 lines
- can be build and debug without glib