Expose the logger and device objects.
Add factory methods for collectionsObject and syncObject.
grammer/typo
Existence check.

Since we can now call getChanges() with just flags from the maillog,
we won't always have the 'read' and 'flagged' keys. Fixes some undefined
index errors in the log.
Fix false positive change detection when no MODSEQ is available.
Fix setting flags during initial sync when no MODSEQ is available.

Fixes broken caching of UIDs in the sync state which could lead to
anything from completely broken syncs to the inability to detect
deleted messages.
Tweak some logging, remove some overly verbose entries.
Use the factory methods in Horde_ActiveSync.
Inject the logger and server object.
Update some comments.
simplify
Change order, we shouldn't update the cache if there was an error.
Add Horde_ActiveSync_Collectons::updateCollectionsFromCache().

Used to pull the most recent collection data from cache so looping
syncs/pings will always have the most recent data without having
to die/reissue.
Add method to get the heartbeat interval, normalized to seconds.
Ignore the syncCache's timestamp when validating.

Prevents concurrent sync requests from killing a ping unless
necessary.
Move this to the collection object.
Extract pollForChanges() to the collection object.

Will eventually be used for PING too, reducing duplication of code.
Standardize on $state.
Add @property
Remove unnecessary parameter.