implement map merging/splicing via <<

fixes #22
don't override leaf nodes when merging lists
implement list merging