Clean up code in inifile.c
Reference types are non-POD
Fix Issue 7747 - Diagnostic should be informative for an inferred return
type in a recursive call.
Fix Issue 8101 - Display candidate function overloads when function call
fails.
implicit conversions for NewExp
Fix build on OpenSolaris.

With these changes, dmd compiles on OpenSolaris 11.1.
Fix Issue 12678 - Field constness missing in diagnostics for multiple field initialization error.
Merge pull request #3512 from redstar/solaris

Fix build on OpenSolaris.
Merge pull request #3511 from AndrejMitrovic/Fix12678

Issue 12678 - Field constness missing in diagnostics for multiple field initialization error.
[style] fix indent
[Refactoring] Change return types from int to bool
[Refactoring] Remove side-effect in searchCtor
[Refactoring] Rename scope variable to `sc2` for aggregate members
Merge pull request #3513 from 9rnsr/refactor_ad

[Refactoring] Cleanup code around aggregates
[Refactoring] Use semanticRun for aggregates

Reasons:
1. Currently used states have problems:
  - `members` and `symtab` would be NULL for opaque declaration
  - `sizeok` is not set for InterfaceDeclaration
2. We should catch the "the first called semantic" timing for some reasons
[Refactoring] Consolidate forward reference handling between aggregates

- Find valid `scope` first
- Set parent before `type` semantic and its mangling calculation
- `parent` and `type` are necessary even for opaque declaration
[Refactoring] Consolidate handling of protection, storage_class, and userAttributes

They should be applied even for opaque declaration
[Refactorign] Consolidate `symtab`
[Refactoring] Fix ungagSpeculative() position
fix Issue 12555 - Incorrect error ungagging for speculatively instantiated class

`ungagSpeculative()` should do nothing for function local symbols.