Split carchive and iarchivable

By splitting out IArchivable from Archive.h a lot of dependency can be removed. Inspired by how ISerialize is split out from Variant.h.

Touching utils/Archive.h now only triggers a rebuild of 10 files. Before there where hundreds.

PR also includes a very small fix for a unrelated test case.