automod: defer parsing (#585)
This shifts the external API for automod from taking a pre-parsed "any"
struct of a record, to taking CBOR bytes. the motivation is to make it
easier to work with content for which the lexicon isn't know at compile
time, which will soon become much more common as we allow folks to write
arbitrary record types to their repositories, and this content shows up
on the relay firehose.
The `atproto/data` package knows how to parse and extract some
information from generic atproto record CBOR, so it is able to pull all
the blobs (`$type: blob` objects nested within records), and we can
switch over to that, which is more generic (and hopefully robust) than
doing schema-by-schema extraction.
For firehose content, this is all pretty straight-forward, because the
records are already coming in as CBOR. in the capture system, we now do
schema-specific parsing, then re-encode as CBOR from the parsed struct,
which is kind of weird. and in tests records need to be marshaled to
CBOR, which is a bit unfortunate. maybe some helpers would make this
more idiomatic?
tested a small amount against prod firehose.