AC: `NULL` defaults prevent correct signatures. Let's add `inspect.unrepresentable` to fix this

I’ve done some research about generating signatures based on @storchaka feedback and I now agree that we cannot make this the default. But, adding include_unrepresentable=False flag to inspect.signature function seems like a simple and working solution.

It will:

  • Allow us to use inspect.signature(..., include_unrepresentable=True) on all things inside (like in pydoc, help(), etc). And things that have NULL default will work correctly for our use-case
  • Not break anyone else’s code
  • Not complicate future potential inspect.signatures implementation

Downsides:

  • We will leak our internal tooling (which I consider it to be) as a public API, so maybe _include_unrepresentable, to indicate that this is some very strange argument?