feat: suppress extra archive notifications

Previously, archive.Add-ing a node would *always* send a
notification to all subscribers, but this behavior wasn't
relied upon anywhere. It's much more useful if the notification
is only sent when the node is not already in the archive, so
this commit changes the behavior to enforce that.
deps: officially switch to golang.org/x/crypto fork
Merge branch 'protonpgp'
deps: switch to protonmail crypto lib fork
feat: simplify Archive implementation
feat: reorganize Store implementations into new package
feat(fields): make SchemaVersion a uint16
bugfix(twig): empty twig data is valid
bugfix: update builder.go to use new sig type
feat(fields): make SignatureType specify pubkey algorithm
test/feat: validate new content/key types and test
doc: clarify about delimiter character
feat: enable all characters in twig key name
feat: add accessor for twig data on nodes
test: fix tests to use new node creation signatures
feat: switch to non-JSON metadata (tests broken)
doc: clarify that twig keys can't contain NULL
doc: fix twig key example format
doc: add twig format docs
test: ensure twig.Data rejects bad keys on marshal