WIP: Add indent support in to_json
- [X] closes #12004
- [ ] tests added / passed
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

This is a WIP and requires a little more refinement (namely around how `level` is incremented in the extension module, testing arrays) but is more or less the direction I think we could head in

This is mostly inspired by changes done in https://github.com/esnme/ultrajson/commit/930dfa5525219d52c8422cf416ca308bc7382870#diff-edae06c872e58ad6edf574f4414aac9f
