build_in_directory was ~140 lines long which is a bit long for my taste.
It also has a bunch of nested if statements which I don't prefer.
The first ~60 lines are computing the platform, so I factored those out
into helper methods which have clearer intent and less indentation.
* Add structually typed GenericPythonConfiguration
Use structural typing for the return value of get_python_configurations
so that we don't have to specify a union of all possible PythonConfiguration
types
* address henryiii's comments
* Use Set in more places