Make header generation stable
Refactor redundant/conflicting storage class handling

Check redundant/conflicting attributes between prefix and postfix
Keep existing weird prefix attribute behavior on AliasDeclaration and VarDeclaration

I'd like to store all prefix attributes to `Declaration::storage_class`, but
currently it's not possible because of these behaviors.