Added map-merge-deep function

map-merge-deep combines two maps into a single map. The merge is recursive, meaning maps can contain other maps to an arbitrary depth.