ExpressionWriter: Various enhancements
ExpressionWriter: Various enhancements

* Simplify string handling using common code to handle prefixes
* Fix rendering of empty sets as `set()` instead of ``{}`
* Add support generator expressions
* Use common code for comprehensions and generator expressions
* Add support for Ellipsis rendered as `...`
* Minor refactor to handling of unop/binop precedence
* Fix rendering of multidimensional indexing

cython/cython,cython/cython,da-woods/cython,scoder/cython,scoder/cython,da-woods/cython,da-woods/cython,scoder/cython,da-woods/cython,cython/cython,scoder/cython,cython/cython