Different fixes for #3116

This PR is following the next goals:
1. Fix mangling for constant classes. D `const(Foo)` should be mapped to C++ `Foo const * const`, however g++ mangling rules say that top const-modifier should be discarded. Thus `void foo(Foo const * const)` and `void foo(Foo const *)` have a same mangle.
2. Get whitespaces in order: remove trailing whitespaces, change `Type* var` to `Type *var`.
3. Remove remainig cases of D `shared` to C++ `volatile` mappings.
4. Add some asserts (small reassurance).
5. Add disabled test to check the D variadic templates to С++11 variadic templates mapping. (It really works, but I have not decided make this test mandatory yet.)
6. Add test for a global static array variable.