`Store.MaxChannels()` => `CanStore()`.

Simplify `NoStore`.
Add failing handshake test with channel IDs.

Remove redundant `TestHeloReset` test.
Extract handshake logic into `Worker.handshake()`.

* Complete the handshake before querying the balancer.
* Ensure `handshake()` resets unknown device IDs if channel IDs are
  specified.
`IsKeyExist()` => `IsEtcdKeyExist`.
Track and filter etcd retries.

* Only retry failed etcd requests caused by network, Raft, or internal
  etcd errors.
* Simplify the `Updater` interface. Updaters may optionally implement
  `RetryHandler`.