This is part of a series of diffs in order to take more control over our
type system. In particular we are going push the use of python.Typing
up to inference layer only and only allow them where the runtime types
are used. This commingling of types has long been an issue (and will
remain a bit of one).
It is the work here that really exposed the issue of not
controlling the API for our types as we were passing instances
of ConfigType to the typing objects. https://dagster.phacility.com/D1564
This would be a breaking change for folks who have imported typing
and used it in the context of config.
Had to add support for untyped List in config to bring up to parity
with Set and Tuple.