Bug 836790 - pre: don't run session.advance in separate thread in EnsureClusterURLStage.
Bug 836790 - pre: remove unused generality in RepositorySession.getBundle.
Bug 836790 - pre: More logging in CountCheckingServer11RepositorySession.
Bug 836790 - Add getter for RepositorySession.lastSyncTimestamp.

This will allow us to delegate the getter in MiddlewareRepositorySession.
Bug 836790 - Make MiddlewareRepositorySession.{shouldSkip,dataAvailable,unbundle,getLastSyncTimestamp} delegate to inner repository.
Bug 836790 - Act on RepositorySession.dataAvailable.

This commit moves the dataAvailable call into RecordsChannel and uses
it to possibly short circuit fetchSince.
Bug 836790 - Test RepositorySession.shouldSkip.
Bug 836790 - Implement Server11Repository.dataAvailable.

This couples InfoCollections and Server11Repository.  It is possible
to do this kind of test above the server sync stage level, but the
existing architecture is in place to do it closer to the repository
session level, so let's do it.
Bug 836790 - Post: Remove RecordsChannel.timestamp.
Bug 836790 - Review comment, part 1: Add InfoCollections() constructor.
Bug 836790 - Review comment, Part 2: Don't allow null infoCollections in Server11Repository.
No bug - Avoid trivial NPEs. r=trivial
Bug 836790 - Don't HTTP GET remote changes if info/collections says there are none. r=rnewman