Query string encoder with configurable array and nested formats.
@type array_format() :: :comma | :repeat | :indices | :brackets
@type nested_format() :: :dots | :brackets
@spec encode(map() | keyword(), keyword()) :: [{String.t(), String.t()}]
@spec stringify(map() | keyword(), keyword()) :: String.t()