REF: eliminate method _write() in json writers
- [ ] closes #xxxx
- [ ] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

Attempted to figure out what is wrong with the issue https://github.com/pandas-dev/pandas/issues/36211.
I noticed that the private methods ``_write`` are defined in each child of class ``Writer``, which simply re-define ``obj`` and call the parent ``_write`` method.
It turns out that the source of the recursion does not lie there, but I refactored the module slightly by removing the mediator ``_write`` method. Instead I put the differences between the writers into their ``__init__`` method.

It seems that source of the problem with the recursion mentioned in the bug report is in ``pandas/_libs/src/ujson/python/objToJSON.c``.