We end up:
1. making the main interface (`jsx:`) more readable and easier to maintain
(this allows for easier future dropping of the use of `#config{}` for options),
2. fixing some config.-related `-spec(_).`s that weren't using proper elements,
3. having `any()` become a "specific type" - which seems like an improvement,
4. moving stuff like `list()` or `proplists:proplist()` into more appropriate types,
5. making the main config. element (`jsx_config`) "pretty" visible,
6. creating a visible distinction between a module's config. and the generic `jsx_config` elements
Made sure all exported types do have a typespec is useful in build scenarios
where the erlang compile options
[warnings_as_errors, warn_missing_spec]
are used.
A few type errors found by Dialyzer are corrected too.
modified: src/jsx.erl
modified: src/jsx_config.erl
modified: src/jsx_config.hrl
modified: src/jsx_decoder.erl
modified: src/jsx_parser.erl
modified: src/jsx_to_json.erl
modified: src/jsx_to_term.erl
modified: src/jsx_verify.erl