implement UDA for module declaration
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.
[Refactoring] Parser::parseCtor()
Merge pull request #3696 from 9rnsr/refactor_parse

Parser improvements to handle attributes
Merge pull request #3947 from IgorStepanov/module-attributes

[enh] implement UDA for module declaration
Remove internals for typedef declaration
Deprecate is(T == typedef) syntax