(#20200) Add a recursive merge function.

per puppetlabs/puppetlabs-mysql#274 and for issue #20200 I am adding a recursive merge function to stdlib. Since replacing the normal merge with this new functionality can cause unexpected consequences, this is being added as a new function (deep_merge). 

This is replacing the original pull request https://github.com/puppetlabs/puppetlabs-stdlib/pull/186 and moving it to my github organization that has signed the CLA. The other issues have also been resolved.