`Conn.Register()` should call `conn.addChannel()`.

This allows custom decoders to override the default `"register"`
decoder.
Add `Conn.SpoolAll`, `Ping{Interval, Deadline}`.

If the `SpoolAll` option is set, notifications sent on unregistered
channels will not be dropped. This is useful for testing, but should
be moved to a higher-level client in the future.
`TestClient.Notify()` => `Notify()`.

`TestClient.waitAll()` now returns `ErrChanClosed` if the notification
channel is closed prematurely.