fix: use fresh token on garden websocket reconnect
When a garden's websocket disconnects, Slipstream reconnects using the
original URI from init time, which contains an expired boruta token.
Override handle_disconnect to call connect() with a freshly built config
that reads the current token from storage.
sow-141
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>