AdvancedDecodeHook extension
Merge remote-tracking branch 'ottemo/master'
Tweak AdvancedDecodeHookFunc signature for consistency

Field names are supplied to hook functions for more descriptive errors
and `val` is passed after `data` to match mapstructure's own
internal methods.