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. **Edit**: Informal benchmark: [source](https://gist.github.com/zslayton/9506663#file-find_path_bench), [results](https://gist.github.com/zslayton/5118be2a743b0ce523dd#file-gistfile1-md)
- Impls of `is_*` methods revised to be more concisely expressed in terms of their respective `as_*` methods.