A well-tested function to deep extend (or merge) JavaScript objects