Pull Request for Issue778: Move prepare call in AMDirectorySynchronizerDialog to different thread

Adds a class called AMThread that can return a worker object to the calling thread.
Uses this functionality to push the synchronizer to a different thread during the prepare() call, which can be expensive depending on how much data there is to compare.