feat: remove redundant SubscriberStore

Forest now provides the Archive type and the ExtendedStore type
directly, which eliminates the need for this extra store
interface and implementation.
deps: officially switch to golang.org/x/crypto fork
feat: use new store package for archive
deps: depend on latest breaking-change commit
deps(forest-go): update to use new (breaking) forest library
bugfix: worker: ensure local leaves are sent

This fix changes which slice is iterated to fetch all leaf nodes
from a Store(). Previously I used the destination slice which actually
has len 0. This caused the for loop to always be skipped.
feat: worker: announce all local leaf nodes when syncing tree
deps: update forest-go to get efficient grove Children()
deps: update forest-go to get more performant grove
feat: worker: clarify function name
feat: create supervisor loop to restart workers
relay: only listen on localhost by default
relay: Rename address variable for clarity
relay: add flag for listen IP address

Currently the relay binds to all local addresses by default.
This isn't especially secure for laptops on random local wifi
networks and the like, so this is incremental progress towards
defaulting to only listening on localhost.
ci/cd: only deploy master branch if ci passes
ci/cd: automatically restart arbor.chat relay
ci/cd: specify ssh deploy key when deploying relay
ci/cd: scan host keys before deploying relay
ci/cd: automatically deploy new relay builds to arbor.chat
relay: capture logs of all relays in test script