ini: Fix parsing of variable with spaces before the =

At least from what the source code suggests, a variable declaration in
the config file as this should be supported:
DFLAGS = -I/usr/include/d

But in reality, if you live spaces like that, the variable value will
get uppercased.

This commit fixes this problem to properly parse the extra spaces.
man: Mention variable names are converted to uppercase
ini: Add support to define undefined variables

Similarly to Make files, the syntax `VAR ?= value` is added to define
variables only when they were previously undefined.

In this case, if the environment variable `VAR` was undefined, then it
will be defined with the value `value`, otherwise the previous content
of `VAR` will be preserved.

This is useful to define default flags in the config file that can be
easily overridden by using environment variables.
Re-implement Statement::apply in terms of Visitor
Fix Issue 10221 - foreach(char c; 0..256) doesn't work even though the upper bound is 255
Merge pull request #3135 from 9rnsr/fix11963

[REG2.065a] Issue 11963 - ICE(parse.c) Parser crash
Merge pull request #3136 from 9rnsr/fix11965

[REG2.064] Issue 11965 - Segfault on garbage
Merge pull request #3137 from 9rnsr/fix11967

[REG2.065a] Issue 11967 - ICE(parse.c) Parser crash
Merge pull request #3112 from 9rnsr/fix11941

[REG2.065a] Issue 11941 - Errors when appending to aggregate member array in CTFE
Merge pull request #3107 from 9rnsr/fix11931

[REG2.065a] Issue 11931 - Linkers "Symbol Undefined" again with dmd HEAD when -g specified
Merge pull request #3105 from 9rnsr/fix11930

[REG2.065a] Issue 11930 - Alias this not considered in is(T unused: U) matching
Merge pull request #3104 from 9rnsr/fix11896

[REG2.065a] Issue 11896 - isVirtualMethod related GitHub HEAD regression (works with 2.064)
Merge pull request #3097 from 9rnsr/fix11924

[REG2.065a] Issue 11924 - inout Variadic Template Parameters
Merge pull request #3094 from WalterBright/fix11922

[REG2.065a] Issue 11922 - ICE on nonexistent identifier in templated auto method
Merge pull request #3125 from 9rnsr/fix11944

Issue 11944 - ICE(expression.c) Assertion `f' failed.
Merge pull request #3139 from 9rnsr/fix11968

Issue 11968 - ICE(expression.c) Crash when deleting __FILE__
Merge pull request #3128 from MartinNowak/fix11956

fix Issue 11956 - dmd doesn't lookup /etc/dmd.conf
Merge pull request #3138 from 9rnsr/fix11966

[REG2.065a] Issue 11966 - inout(const(char))[] doesn't convert to inout(char)[]
Merge pull request #3141 from 9rnsr/fix11974

Issue 11974 - ICE(cast.c) Segfault with invalid assignment
Merge pull request #3142 from 9rnsr/fix11980

[REG2.061] Issue 11980 - startaddress pragma broken