Fix DDos of calendar server.

This change switches to use chrome.storage.local, since the
current architecture of chrome.storage.sync prevents individual
keys from reaching > 4k.  The calendars object easily exceeds
that limit, causing a refresh loop.  Now the code checks for
chrome.runtime.lastError when setting values to storage, though
the limit for storage.local is much higher.
Merge branch 'ddos'