Better Constant/Variable handling
Currently Variable is implemented for any type that implemements Constant. This is needed for the default value substitution.
However, implementing Constant is currently done by hand. It would be nicer if SpvType could write a constant of it self to the serializer instead.
The usage could look like this
let a: SomeStruct = ...;
let a_constant_id = DataId::from(a.as_constant(serializer));