Rework the asjson() protocol for JSON views of models
This release adds fixes, enhancements, optimizations, and documentation to the asjson()
protocol that is used to view ASTs and models.
The bump in the minor version number because the changes to asjson()
will likely break code that relies on the __json__()
protocol and thus create a backwards incompatibility.