Bug 821604 - Don't start periodic sync until we have a calendar that needs a real sync operation r=millermedeiros

damn.. async programming is **hard**.. just thought about another edge case:

 1. add one syncable account
 2. `scheduleSync`
 3. user somehow removes calendar **before** `cacheSyncAlarm` is called
 4. `scheduleSync` will be called again because of `persist` handler
 5. won't do anything because no `syncableAccounts`
 6. it will trigger sync ONCE even tho we don't have any syncable accounts (since it didn't remove the alarm)