Use file modification time, not size, to determine whether changes exist.
Watch files for updates in addition to adds/removes.

When file content is updated, also check metadata. Also, whenever a file
is newer than its .mdcache file, we should ignore the cached data and
regenerate it.

Tested by adding some logging and adding/removing/updating files.
- Use both size and mTime when determining if files have changed, since the latter has second-granularity.
- Don't re-enqueue the file modification event. This can deadlock the channel buffer. Instead, rely on the next file event to trigger a metadata update.

Tested by running: `yes | head -n 50000000 > somefile.txt` while distributor ran.

Previously, the channel buffer would fill up and get stuck. Now, it
generates the proper metadata (same hash) whether the file was present
in the directory before distributor was started or if it is added
incrementally.
Merge pull request #4 from mattspitz/watch-updates

    Watch files for updates in addition to adds/removes.