duplicate file change messages

preparing to handle duplicate file change events better; added unit
tests to verify the problem, beginning a base class for file based
integration services so all of the logic around dealing with duplicated
events is centralized
fixed handling duplicate file created/changed events