Fix DirectoryDaoTest.
Add EXPECT_QSTRING_EQ and ASSERT_QSTRING_EQ helpers.
To facilitate experimentation, strip out the base logic of EngineSync into BaseSyncableListener.

This will let us build different implementations of EngineSync that inherit from
BaseSyncableListener. Individual sync behaviors should not change
BaseSyncableListener.
Use SyncableListener* instead of EngineSync* from SyncControl and InternalClock to enforce only using methods we say are allowed via the interface.
Move all sync related classes to src/engine/sync/.
Merge branch 'master' into master_sync