Singleton shouldn't allow other instance and clone

Constructor and clone methods should be private, `getInstance` is the only responsible for class instance.

Refactoring tests with private constructor.

Can't mock singleton classes.

Reverting back constructor parameters
Handle new compile config.
Add default function.
Update change log.
Merge pull request #5120 from gabrielsch/patch-1

Blocking constructor and cloning in AliasBuilder
Doc blocks.
Fix doc block.