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
Merge pull request #5120 from gabrielsch/patch-1

Blocking constructor and cloning in AliasBuilder