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.
The AMThread (or QThread) is actually instantiated in the calling thread. That is, the constructor for the class is called from a given thread which is different from the thread that will run in the exec()/run() call made by the thread. I need an object created in the exec()/run() call to do the pushing, thus the helper object.