Fix validate/3 typespec

The *Data* type specification for `validate/2` and `validate/3` is not the same.

For `validate/2` it's `json_term() | binary()` and for `validate/3` it's just `binary()`, which causes Dialyzer to go crazy when you pass in already parsed JSON.

This PR simply adds `json_term()` to the `validate/3` spec.