Allow empty string keypath in mappings

Bitten by the falsey empty string. `{{.}}` and `{{this}}` get turned into the keypath `''` during resolution, but most of the places in the mapping code were checking for falsey values to bail instead of `undefined`.

Fixes #1442