Application framework for building data synchronization clients and data synchronization servers