Decode maps a settings map onto target. On failure it returns a
caller-friendly error: raw mapstructure type-mismatch messages are rewritten
into per-field sentences so that an invalid plugin setting surfaces as a
readable validation message instead of an internal decoder dump.