Hrm. Not so sure on this pattern. `withAutoUpdateVersion basically means "at startup". But hiding that I think just makes it harder to reason about startup and loading. I think it would be clearer to make it explicit.

How about:

* AutoUpdate.autoUpdateVersion() returns the value if it has already computed it, and throws if it is called before it is computed. It is an error to call this before startup.
* This line in appcache becomes Meteor.startup() instead of withAutoUpdateVersion, plus a comment about startup ordering.