We should be using envelopes instead.
We should keep the serialize::Versioned definition and add some helper method so that envelopes can still use the json format, but it shouldn't be exposed so directly for Hugr.
We should instead have store/load methods as we do with packages.
This could be a breaking serialization change if we decide to store nested hugrs as envelopes rather than raw hugr jsons.