v4.2.0
Retain key order in objects for UnmarshalJSON() and MarshalJSON() so that implementations of ordered maps can work.
New interface ElemTyper allows custom containers implementing UnmarshalJSON() to let hjson.Unmarshal() know what type of elements they will contain, so that hjson.Unmarshal() can unmarshal numbers, booleans and null into strings if needed by the custom container.
Tested on Go 1.11 - 1.19