Json method cleanup

Closes #12829.

- Names of `is_str` and `as_str` changed to `is_string` and `as_string` in order to be consistent with Json enum variants.
- Comment fixed.
- `find_path` reworked to be return None as early as possible if no value is found on the provided path.
- Impls of `is_*` methods revised to be more concisely expressed in terms of their respective `as_*` methods.