Backported lots of changes and fixes from FeedImport 5.0:
Added trampolines for calling the callback functions to the Monitor class, to allow for more flexible extension.
Separated out the status change analysis code from Monitor::check() to the new function Monitor::status_change().
Decreased the backoff speed from 1/16 to 1/256.
This means that files need to be older than max_dir_check_interval * file_interval_factor * 256 seconds before they will be polled at the maximum interval.
ie with the defaults this will be for files older than 60*5*256 seconds = 1280 minutes ~ 21 hours.
Improved robustness against files being replaced with directories or vice versa or similar.
Fixed bug regarding stability of deleted files.
Added MF_HARD to keep track of monitors that have hard links from other monitors.
basic.pike is now on level with revision 1.35 from FeedImport 5.0.