Flatten takes a structure and turns into a flat map[string]interface{}.
Within the "thing" parameter, only primitive values are allowed. Structs are
not supported. Therefore, it can only be slices, maps, primitives, and
any combination of those together.