compare deserialized strings, not strings

The $fact->as_content_bytes here are JSON built on demand.  The
JSON isn't built in a canonical order.  Rather than force that,
which would slow down reports (even if only a tiny bit), we'll
just deserialize the bytes into a structure that we can compare
with cmp_deeply!