Move auto reload functionality out of livedata inside of DDP to new
autoupdate package implemented on top of DDP.
Implement `AutoUpdate.newClientAvailable` reactive data source.

Have the appcache use the auto update client version id.

Fix autopublish warning.
autoupdate package doesn't need to be internal
Reload the client on DDP version negotiation failure
on the default connection, on the assumption that new
client code will be able to negotiate successfully.

Uses an exponential backoff if after reload the DDP version
negotiation fails again.
Update description of deprecated DDP welcome message and include QA notes.
Avoid having test-in-browser shutdown the autoupdate subscription,
so that developers still get hot code pushes when writing tests.

Fix livedata tests.

Add a sanity check to deciding when to reload: only reload if there is
an available client version marked "current".  (Otherwise if the
server fails to publish any valid client versions, perhaps as a bug in
a forked autopublish package, the client will go into an infinite loop
of reloads).

Update QA notes.
Calculate the client hash in webapp so that autoupdate doesn't have to
be a strong dependency of appcache.

Delaying publishing the current client version document until the auto
update version is available isn't necessary because the publish
callback won't be called before webapp starts listening, and that
happens after startup.

In the app cache manifest include both the client hash and the
AUTOUPDATE_VERSION, which both allows the browser to load new
client code even when the auto update version is explicitly set by the
developer, and also ensures that if the developer changes the auto
update version this is propagated to the client in the app HTML so
that autoupdate doesn't get into an infinite loop of reloads.
Use reload migration API instead of localstorage.

Remove the unused `serverRequestedVersion` argument to
`onDDPVersionNegotiationFailure`.

And let's call the remaining argument `description` instead of `error`
since it isn't an Error object.
Reuse stream reconnect exponential backoff code for DDP version
negotiation failure retries.
Fix livedata tests.
Add an overview of autoupdate and the code push process.
Fix typo.
Have the client send the "connect" message on stream open
instead of waiting for the welcome message.
Have using test-in-browser cause autoupdate to reload on server changes,
which is convenient when running unit tests in the browser.
livedata doesn't need to use localstorage because it's now using
reload migration instead.
use Deps.autorun, remove unused crypto
Comment on hack encoding knowledge of autoupdate in livedata.
Add history for autoupdate change.
Comments.
Merge branch 'pr/1583' into devel