Merge instance aliases to prevent overwriting aliases with empty array

When trying to register your own aliases during runtime it currently overwrites all the existing aliases that have been registered because `setAliases()` is called with an empty array.

This just merges the existing array of aliases and the new array of aliases if you choose to register them when getting an instance.