Extracted interface to allow for different sync strategies.

Implemented a new strategy based on timestamps instead of default "local changes always win"
Newer SDK version should be able to support overriding Sets of Strings coming from remote SharedPreferences