[enh] Issue 12931 - Make const, immutable, inout, and shared illegal as function attributes on the left-hand side of a function

https://issues.dlang.org/show_bug.cgi?id=12931

A try to detect misleading prefix attributes.
More precisely, here is a branch for alias declarations, and they cannot have optional template parameters.