Make sure that published component attributes can also be mutated This commit adds support for serialization of component level attributes. Before, the module metadata descriptor could contain attributes, but since we never used them, apart from the hard-coded `status` attribute, there was no need to serialize them in binary format. Now, it is possible for a consumer to overwrite component attributes, including custom attributes. This makes necessary for serializing this information.
However, this commit does NOT add support for publishing component attributes: at this point, while there's a way to _consume_ attributes, there's no way to _publish_ them.
Don't use a strongly type attribute for usage For "foreign" metadata sources the only expected types are `Attribute<Boolean>` and `Attribute<String>`. The `String` version is coerced at runtime to more complex attribute types like `Usage`.