Allow target/source(s) to be `undefined` or `null`
Merge pull request #7 from troopjs/feature/merge-undefined

merge should allow `undefined` or `null` as parameters without blowing up