Changed FileUpdateChecker so it has recursive functionality and post
notifications of the files that have been changed. It can now check
directories and all of their subdirectories to detect file additions,
modifications, and removals.
Removed the checksum and md5 hash and moved the ChangedFile class inside
FileUpdateChecker. The handle_paths method in FileUpdateChecker is now
cleaner by using partition.
Added tests for the FileUpdateChecker and moved the call of valid_paths?
to happen only for files and not directories in the BFS. Now we
explicitly reject up and self directories outside of the valid_paths?
method.