SmartSync caching updates

Tests still need to be fixed, but I wanted to get these changes in before too much more time is passed, if other work is going to depend on some of these API changes.
Probably a good idea.  I'll make that update.