Added typespecs on all exported functions, and fixed 

Made sure all exported types do have a typespec. This is useful in build scenarios where the following erlang compile options are used:
```
[warn_missing_spec, warnings_as_errors]
```

A few type errors found by Dialyzer are corrected: 
* `jsx_decoder:resume/6` and `jsx_parser:resume/5` have gotten an `incomplete`-tuple alternative as return value. 
* The type of the second argument to `jsx_parser:resume/5` have been changed to `list()`.