correctly propagate exception while sync, don't log auth error
convert to Kotlin
convert to Kotlin — Kotlin doesn't support module package prefix
 extract FileCredentialsStore (prepare to support OS X Keychain)