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.