Re-fix cross-thread bug

I'd forgotten timers run on their own threads as well.  Easy enough to
fix, just overrode the SynchronizingObject property to also set the
corresponding property on the timer.
Fix race condition in file watcher

File watcher events usually end up being called on a different thread,
so we can't clear the existing LinkedLists, have to create new ones each
time unfortunately
Merge pull request #18 from fatcerberus/master

Fix regression due to last patch