provide and use slightly more efficient versions of select-keys and
merge, using transients