When writing the user-facing documentation, I noticed several inconsistencies
and asymmetries in the Python API we provide. Fix them by adding:
- the owner property to regions, similarly to blocks;
- the isinstance method to any class derived from PyConcreteAttr, PyConcreteValue and PyConreteAffineExpr, similar to PyConcreteType to enable isa-like calls without having to handle exceptions;
- a mechanism to create the first block in the region as we could only create blocks relative to other blocks, with is impossible in an empty region.
is this working similar to attributes, i.e. one can distinguish const / dim expressions etc? then a small test could make sense as well?