Add support for: 1. `#pragma once`; 2. `struct` instead of `class` with `public:`; 3. Virtual destructors; 4. Better template type arguments placement (https://github.com/linksplatform/RegularExpressions.Transformer.CSharpToCpp/issues/68).