Mappers: Better validation of mapping JSON

The parsers for the mappers now remove each setting as they parse it and an error will be thrown if any settings are left after parsing is complete

Closes #7205 
`null_value` is undocumented for `murmur3` and also it seemed to have never worked at all (was not parsed and the set value ~0L was never used). I think we should remove it. Replacing the ~0L in ctor with null?