Give correct path in nested merges

The final component is already added by _merge, we don't have to add it
again when convertedin a nested hash into a subref
Give clearer error messages when two scalars are incompatible in merge