CTFE: only run CTFE once on forward referenced variables

Make sure semantic2 is run exactly once on const-folded variables.
* Always save the scope from inside semantic()
* Before accessing .init on these variables, run semantic2.
* Remove a hack in expandVar, which I don't really understand.
Test case for const folding of multiple aliases

Cut down from a failure in Phobos std/traits unittest
CTFE: impove error msg for forward referenced vars

Don't call it a static variable, unless we actually know that it is.